1、了解分布式文件系统(HDFS)的属性 2、了解HDFS的访问方法 3、知道所有者及组用户的角色, 以及文件和目录的访问权限 4、使用HDFS命令或Ambari Files View 管理文件和目录 5、使用REST API 访问HDFS 6、使用 HDFS Access Control Lists (ACLs)保护数据
一、Hadoop and StorageHadoop是可扩展, 为不同的文件系统所设计,用户或程序可以通过特殊的URI前缀在命令行货代码中访问特殊的文件系统。 例如:hdfs dfs -ls 用来查看目录下的内容 这个命令可以使用不同的前缀来访问不同的文件系统: 1、显示本地文件系统的/bin的内容:
hdfs dfs –ls file:///bin
2、显示HDFS的/root的内容:
hdfs dfs –ls hdfs:///root
3、默认存储类型是HDFS,由core-site.xml中的fs.defaultFS的属性决定:
Set in core-site.xml
fs.defaultFS=hdfs://:8020
HDFS客户端尝试使用RPCl连接HDFS的NameNode在8020端口,除非另有明确说明。
注意: 即使默认存储文件系统指定为HDFS,
hdfs dfs -ls file:///bin
仍然是显示本地文件系统的/bin的内容
Hadoop提供许多方法来访问HDFS,包括: HDFS Shell, WebHDFS, the HDFS NFS Gateway, the Java API, the Ambari Files View, and HUE (Hadoop User Experience).
“`
三、 NameNode and DataNode IntroductionHDFS服务中有两种组件: NameNode(主)—> Master node DataNode(从)—> Worker node(slave node) NameNode管理System namespace 和元信息: 文件和目录名称; 文件系统的层次 权限和所有者 最后一次修改时间 access control lists(ACLs) DataNode只包含数据块的信息: 默认情况下,一个块(data block) 最小是128M, 每一个block都分配一个唯一的ID,映射到文件名, 维护在NameNode , 只有NameNode知道那个block对应那个文件。 下图是NameNode和DataNode的结构图:
HDFS中的文件和目录的属性和Linux 基本一致,不做过多介绍。使用 hdfs fs -ls 命令来查看一个目录下的内容,及文件文件、目录的属性, 如下图:
Home Directories 是用与调整HDFS的权限来控制数据访问, 一个HDFS Administrator可以创建一个home directories供所有用户来会用,但是一些应用, 例如Hive也可以创建home directories 。 如下图Saad对它的主目录有read-write访问权限, 这意味只有HDFS superuser and Saad 在它的主目录创建文件和子目录。 一旦Saad有它自己的主目录, 它可以创建文件和子目录,设置不同的权限, 来控制其他用户的访问。
许多Hadoop服务都有超级用用户的概念, 和Linux中的root, Windows中的Adminsrator类似, 是Hadoop为特殊服务给予特殊的权利,常见的超级用户时hdfs,能够执行任何的HDFS操作。 HDFS超级用户账户由hdfs-site.xml中的dfs.cluster.administrators属性决定, 使用su - hdfs 获取HDFS超级用户的特权 exit– 退出超级用户权限。
7.1、帮助:
7.2、 目录创建及查看:
7.3、主目录和当前目录:
7.4 、 创建文件:
7.5、查看文件内容:
7.6 、文件拷贝和移动:
7.7 、 文件及目录的删除: