使用hdfs是一项最多见的hadoop集群管理工做,虽然能够经过多种方式访问HDFS,但命令行是管理HDFS存储的最经常使用的方法。例如webHDFS、使用HttpFS网关经过防火墙访问HDFS、经过Hue的文件浏览器。node
使用 hdfs : dfs命令来管理HDFSlinux
语法以下:web
hdfs dfs [GENERIC_OPTION] [COMMAND_OPTION]浏览器
1、列出HDFS的文件和目录ide
hdfs dfs -ls / 查看文件/路径的文件及目录oop
能够在ls后面加-d列出目录及查看目录相关信息 -R -h spa
hdfs dfs -cat /path/file.txt 查看file.txt的内容操作系统
关于hdfs dfs的更多选项能够输入hdfs dfs -help 命令行
二、使用hdfs stat 命令获取相关文件的详细信息3d
%n 返回文件或者目录名
%b 返回文件目录的大小,byte。从上面看出目录不占用空间,它的大小为0.
%g 返回group
%y 格式话时inode的mtime
%u 用户
三、建立HDFS目录
建立hdfs目录和linux文件系统中建立目录相似,可使用mkdir命令建立hdfs建立
Hadfs dfs -mkdir /usr/hadoop/dir1 必须/usr/hadoop路径存在才能建立
若是要沿路径建立父目录,指定-p参数
四、删除HDFS文件和目录
删除hdfs文件和目录的命令相似于linux文件系统中的命令。使用-r|R选项递归方式删除目录及该目录下的全部内容。
-skipTrash 选项是绕过hdfs回收站当即删除指定文件及目录
hdfs dfs -rm -R /usr/hadoop/dir/ 删除dir目录及dir目录下的文件及目录
五、更改文件目录全部权和组
可使用-chown命令更改素有者和组名称
$hdfs dfs -chown sam:produser /usr/data/name.txt
使用chgrp命令仅更改用户的组
$hdfs dfs -chgrp supergroup /data/sales/makrer.txt
更改hdfs文件权限
可使用chmod命令更改文件或目录的权限hadoop使用标准的linux文件权限。
$hdfs dfs -chmod -R /data/meta.txt
只有超级用户或文件及目录的全部者才能更改权限,使用chgrp、chmod和chown命令并指定-R选项能够对指定目录进行递归更改
6、使用dfsadmin使用程序执行HDFS操做
使用dfsadmin命令从命令行管理HDFS,虽然hdfs dfs命令能够管理HDFS文件和目录,但dfsadmin命令能够执行HDFS特定的管理任务。
dfsadmin -report命令可以显示集群的基本统计信息,包括DataNode和NaneNode的状态、配置的磁盘容量和数据块的运行情况等有用的信息。
dfsadmin -report命令显示整个集群的HDFS信息,以及集群中每一个节点的HDFS详细信息。DFS命令显示集群各个dataNode级的如下信息。
hdfsadmin -report命令能够检查HDFS数据的平衡性,以及HDFS损坏状况。
Dfsadmin -refreshNodes命令用于更新链接到NameNode的DataNode列表。Namenode从dfs.hosts指向文件和hdfs-site.xml中的dfs.hosts.ex-clude配置参数读取DataNode的主机名。Dfs.hosts文件列出了容许注册到namenodede 全部主机。dfs.hosts.exclude文件列出了全部须要停用的datanode
dfsadmin -metasave命令提供的信息比dfsadmin -report命令提供的更多。
文件保存在/hadoop/log/下,能够find命令在本机查找
HDFS用户和超级用户
在hadoop中建立用户是一种误称,由于在HDFS中没有办法像linux系统中同样建立用户身份,在默认的身份验证模式,hadoop依赖底层操做系统来肯定客户端身份,若是设置了kerbers系统测kerberos肯定客户端的身份。
因为hadoop中没有用户什么的概念,故hadoop没有固定的超级用户。Hadoop的系统超级用户只是启动NameNode的操做系统用户。Hdfs的超级用户没必要是namenode主机的root用户。能够将一组用户分配给单独的超级用户组。
管理HDFS磁盘使用状况
可使用df命令查找可用过的空间
$hdfs dfs -df -h
hdfs dfs -du -s -h 获取已用空间的总和
检查当前空间的配额
使用dfs -count -q命令