HDFS的shell命令
启动hdfs集群
访问HDFS的命令
1. 创建目录
hdfs dfs -mkdir (-p) /目录
hdfs dfs -mkdir /data
hdfs dfs -mkdir -p /a/b/c/d/e/f/g
2. 上传指令
格式:hdfs dfs -put /本地文件 /分布式文件系统
hdfs dfs -put a1 /data
3. 创建空文件
hdfs dfs -touchz /empty/empty01
4. 向HDFS中的文件添加内容
格式:hdfs dfs -appendToFile 本地文件 hdfs上的文件
5. 下载指令
格式:hdfs dfs -get hdfs上的文件或目录 本地目录
6. 合并下载
格式:hdfs dfs -getmerge hdfs上的路径 本地的路径
7. 移动hdfs的文件或更名
7.1 将file*的文件移动到data文件夹中
hdfs dfs -mv /file* /data
7.2 更改文件夹test为test01
hdfs dfs -mv /test /test01
8. 复制hdfs的文件到另一文件夹
8.1 将data文件夹的file01文件拷贝一份到根目录
hdfs dfs -cp /data/file01 /
9. 删除指令
9.1 删除根目录下的file01文件
hdfs dfs -rm /file01
9.2 删除根目录的a文件夹
hdfs dfs -rm -r /a
9.3 删除根目录下的test01文件夹(此指令只能删除空文件夹)
hdfs dfs -rmdir /test01
10. 查看磁盘利用率和文件大小
10.1 查看磁盘的使用情况
hdfs dfs -df /
10.2 查看磁盘的使用情况
hdfs dfs -df -h /
10.3 查看data文件夹的每个文件使用情况
hdfs dfs -du -h /data
10.4 查看data文件夹总文件的使用情况
hdfs dfs -du -h -s /data
11. 修改权限
11.1 修改data文件夹的权限为777
hdfs dfs -chmod 777 /data
11.2 修改data文件夹的拥有者和组为shawn
hdfs dfs -chown shawn:shawn /data
12. 修改文件的副本数
12.1 修改data目录下的文件副本数为5
hdfs dfs -setrep 5 /data
13. 查看文件的状态
hdfs dfs [generic options] -stat [format] <path> ...
命令的作用:当向hdfs上写文件时,可以通过dfs.blocksize配置项来设置文件的block的大小。这就导致了hdfs上的不同的文件block的大小是不相同的。有时候想知道hdfs上某个文件的block大小,可以预先估算一下计算的task的个数。stat的意义:可以查看文件的一些属性。
调用格式:hdfs dfs -stat [format] 文件路径
format的形式:
%b:打印文件的大小(目录大小为0)
%n:打印文件名
%o:打印block的size
%r:打印副本数
%y:utc时间 yyyy-MM-dd HH:mm:ss
%Y:打印自1970年1月1日以来的utc的微秒数
%F:目录打印directory,文件打印regular file
13.1 查看data目录的file01文件的创建时间和大小
hdfs dfs -stat time:%y,size:%b /data/file01
14. 测试
参数说明:-e:文件是否存在 存在返回0 -z:文件是否为空 为空返回0 -d:是否是路径(目录) ,是返回0
14.1 判断data目录下的file01文件是否存在
hdfs dfs -test -e /data/file01 && echo "exists" || echo "no exists"
14.2 判断data目录下的file09文件是否存在
hdfs dfs -test -e /data/file09 && echo "exists" || echo "no exists"