HDFS常用的操作命令
文章目录
- 前言
- 一、查看HDFS大小
- 1.查看HDFS 目录下的文件bytes
- 1.1-count查看HDFS这个目录
- 2.查看HDFS文件夹下 各个目录的总大小
- 2.1-du查看HDFS这个目录
- 二、文件操作
- 1.查看文件命令
- 1.1 ls 命令:
- 1.2 du 命令:
- 1.3 df 命令:
- 1.4 cat 命令:
- 1.5 tail 命令
- 1.6 grep 命令
- 2.复制文件和获取及搬移文件命令
- 2.1 put 命令:
- 2.2 get命令:
- 2.3 copyFromLocal 命令:
- 2.4 copyToLocal 命令:
- 2.5 cp 命令:
- 2.5 mv 命令:
- 2.6 查看yarn(用户)删掉hive表或数据放入垃圾桶位置的命令:
- 3.创建/删除文件夹
- 3.1 mkdir命令
- 3.2 rm命令
- 3.3 rmdir 命令
- 4.改變文件權限
- 4.1 -chmod命令
- 三、HDFS 操作历史记录
- 1.查看hdfs 操作历史记录
前言
这里是常使用HDFS的指令,以后会陆续慢慢添加。然后会运用一些指令这指令差异是如下:
hadoop fs: 使用面最广,可以操作任何文件系统。
hadoop dfs与hdfs dfs : 只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。
一、查看HDFS大小
1.查看HDFS 目录下的文件bytes
1.1-count查看HDFS这个目录
下的大小分別為文件夹数,文件数,文件bytes。
#列出/user/hive/warehouse/下面一層的大小
hadoop fs -count /user/hive/warehouse/*
2.查看HDFS文件夹下 各个目录的总大小
2.1-du查看HDFS这个目录
这个指令第一列表示该目录下总文件大小,第二列表示该目录下所有文件在集群上的总存储大小,与你的副本数相关,我的副本数是3 ,所以第二列的是第一列的三倍 (第二列内容=文件大小*副本数),第三列表示你查询的目录。
#查看HDFS文件夹下的目录总大小
hdfs dfs -du -h /user/hive/warehouse/
二、文件操作
1.查看文件命令
1.1 ls 命令:
# 查看hdfs根目录
hdfs dfs -ls /
# 查看hdfs其它目录(/user/hive)
hdfs dfs -ls /user/hive
1.2 du 命令:
du 命令:显示给定目录中包含的文件和目录的大小或文件的长度,用字节大小表示,文件名用完整的HDFS协议前缀表示,以防它只是一个文件。
Usage:hdfs dfs -du [-s] [-h]
选项:
-s选项将显示文件长度的汇总摘要,而不是单个文件。
-h选项将以“人类可读”的方式格式化文件大小(例如64.0m而不是67108864)第一列标示该目录下总文件大小
第二列标示该目录下所有文件在集群上的总存储大小和你的副本数相关,我的副本数是3 ,所以第二列的是第一列的三倍 (第二列内容=文件大小*副本数)。第三列标示你查询的目录。
hdfs dfs -du /user/hive
180631146431765 541893439295295 /user/hive/warehouse
# 将字节自动转化成单位
hdfs dfs -du -s /user/hive
180631146431765 541893439295295 /user/hive
hdfs dfs -du -h /user/hive
164.3 T 492.8 T /user/hive/warehouse
1.3 df 命令:
# 查看根目录磁盘空间
hdfs dfs -df /
Filesystem Size Used Available Use%
hdfs://123.123.123:8020 1088755539378176 650874542501763 242083445237327 60%
1.4 cat 命令:
# 查看文件
hdfs dfs -cat /user/914jj/test/README.txt
1.5 tail 命令
tail 命令:显示文件的最后1kb内容到标准输出。Usage:hdfs dfs -tail [-f] URI
选项:
-f选项将在文件增长时输出附加数据,如在Unix中一样。
# 显示文件的最后1kb内容到标准输出
hdfs dfs -tail /user/914jj/test/README.txt
1.6 grep 命令
grep 命令:从hdfs上过滤包含某个字符的行内容。
# 显示README.txt文件中包含所需要过滤7030331ae1c9005d12内容到标准输出
hdfs dfs -cat /user/914jj/README.txt | grep 7030331ae1c9005d12
2.复制文件和获取及搬移文件命令
2.1 put 命令:
# 将client node(本地)中的NOTICE.txt文件 put 到hdfs的/user/914jj文件夹中
hdfs dfs -put NOTICE.txt /user/914jj
# 如果文件存在,可以使用-f参数进行覆盖
hdfs dfs -put -f NOTICE.txt /user/914jj
2.2 get命令:
# 获取hdfs中的/user/914jj/README.txt.gz文件,到client node(本地)当前目录
hdfs dfs -get /user/914jj/README.txt.gz
# 和copyToLocal命令一样
2.3 copyFromLocal 命令:
# 这个命令和put作用相同
hdfs dfs -copyFromLocal LICENSE.txt /user/914jj
如果存在LCENSE.txt文件,要进行覆盖,加上-f参数,和put命令一样
2.4 copyToLocal 命令:
# 复制hdfs的/user/914jj/README.txt文件到client node当前目录
hdfs dfs -copyToLocal /user/914jj/README.txt
# 如果需要复制到指定目录
hdfs dfs -copyToLocal /user/914jj/README.txt /指定目录
2.5 cp 命令:
# 将/user/914jj/NOTICE.txt 复制到 /user/914jj/test目录
hdfs dfs -cp /user/914jj/NOTICE.txt /user/914jj/test
2.5 mv 命令:
# 將/914jj/NOTICE.txt檔案移動至/914jj/test內:
hadoop fs -mv /914jj/NOTICE.txt /914jj/test
2.6 查看yarn(用户)删掉hive表或数据放入垃圾桶位置的命令:
#查看yarn(用户)垃圾桶
hdfs dfs -ls /user/yarn/.Trash/日期/user/hive/warehouse/
3.创建/删除文件夹
3.1 mkdir命令
# 创建一个abc目录
hdfs dfs -mkdir /user/914jj/abc
# 目录只能一级一级创建 ,不能一下子创建2个
hdfs dfs -mkdir /user/914jj/abc
mkdir: `/user/914jj/abc': No such file or directory
3.2 rm命令
# 删除/user/914jj/NOTICE.txt文件
hdfs dfs -rm /user/914jj/NOTICE.txt
# 删除/user/914jj/abc目录
hdfs dfs -rm -r /user/914jj/abc
3.3 rmdir 命令
# 删除/user/914jj/demo目录
hdfs dfs rmdir /user/914jj/demo
4.改變文件權限
4.1 -chmod命令
# 将/user/914jj/demo.txt 这个文件权限改为777
hdfs dfs -chmod -R 777 /user/914jj/demo.txt
三、HDFS 操作历史记录
1.查看hdfs 操作历史记录
在主页进入hdfs ,点击configuration,在search框中输入hadoop.log.dir,就可以知道是存在那个目录,我们这里是存在/var/log/hadoop-hdfs,进入NN主机进入/var/log/hadoop-hdfs查看hdfs-audit.log这个档案就是记载hdfs 操作的历史记录,hdfs-audit.log记录了用户针对hdfs的所有操作,详细信息包括操作成功与否、用户名称、客户机地址、操作命令、操作的目录等。