不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

Hadoop Shell命令

列出文件目录

命令格式:hdfs dfs -ls 目录路径

示例:查看HDFS根目录下的文件:

hdfs dfs -ls /
Found 3 items
drwxr-xr-x - hadoop supergroup 0 2020-01-15 22:55 /dataset
-rw-r--r-- 1 hadoop supergroup 38 2020-01-13 21:33 /hello.txt
drwxr-xr-x - hadoop supergroup 0 2020-01-13 21:12 /helloworld

如果想递归查看文件,可以使用 -R 参数,即可打印其子目录和子目录的文件。例如:

hdfs dfs -ls -R /
drwxr-xr-x - hadoop supergroup 0 2020-01-15 22:55 /dataset
drwxr-xr-x - hadoop supergroup 0 2020-01-15 22:55 /dataset/input
-rw-r--r-- 1 hadoop supergroup 38 2020-01-13 21:33 /hello.txt
drwxr-xr-x - hadoop supergroup 0 2020-01-13 21:12 /helloworld

创建文件夹

命令:hdfs dfs -mkdir 目录

示例:在根目录下创建temp目录:

hdfs dfs -mkdir /temp
hdfs dfs -ls /
Found 4 items
drwxr-xr-x - hadoop supergroup 0 2020-01-15 22:55 /dataset
-rw-r--r-- 1 hadoop supergroup 38 2020-01-13 21:33 /hello.txt
drwxr-xr-x - hadoop supergroup 0 2020-01-13 21:12 /helloworld
drwxr-xr-x - hadoop supergroup 0 2020-01-15 23:02 /temp

如果希望级联创建文件夹,需要在-mkdir命令使用-p参数,例如:

hdfs dfs -mkdir -p /temp/upload/2020/01/15
drwxr-xr-x - hadoop supergroup 0 2020-01-15 22:55 /dataset
drwxr-xr-x - hadoop supergroup 0 2020-01-15 22:55 /dataset/input
-rw-r--r-- 1 hadoop supergroup 38 2020-01-13 21:33 /hello.txt
drwxr-xr-x - hadoop supergroup 0 2020-01-13 21:12 /helloworld
drwxr-xr-x - hadoop supergroup 0 2020-01-15 23:07 /temp
drwxr-xr-x - hadoop supergroup 0 2020-01-15 23:07 /temp/upload
drwxr-xr-x - hadoop supergroup 0 2020-01-15 23:07 /temp/upload/2020
drwxr-xr-x - hadoop supergroup 0 2020-01-15 23:07 /temp/upload/2020/01
drwxr-xr-x - hadoop supergroup 0 2020-01-15 23:07 /temp/upload/2020/01/15

上传文件至HDFS

命令:hdfs dfs -put 源文件 目标目录

示例:将本地的Labixiaoxin.jpeg上传到/temp目录:

hdfs dfs -put Labixiaoxin.jpeg /temp
2020-01-15 23:14:53,236 INFO sasl.SaslDataTransferClient: SASL encryption trust check: 
localHostTrusted = false, remoteHostTrusted = false
hdfs dfs -ls /temp
Found 2 items
-rw-r--r-- 1 hadoop supergroup 263804 2020-01-15 23:14 /temp/Labixiaoxin.jpeg
drwxr-xr-x - hadoop supergroup 0 2020-01-15 23:07 /temp/upload

从HDFS下载文件

命令:hdfs dfs -get HDFS文件路径 本地存放路径

示例:将HDFS上/temp/Labixiaoxin.jpeg下载到本地目录下的App目录:

hdfs dfs -get /temp/Labixiaoxin.jpeg App/Labixiaoxin.jpeg
2020-01-15 23:21:19,604 INFO sasl.SaslDataTransferClient: SASL encryption trust check: 
localHostTrusted = false, remoteHostTrusted = false
ll App
总用量 260
drwxr-xr-x. 10 hadoop hadoop 161 1月 12 23:25 hadoop
-rw-r--r--. 1 hadoop hadoop 263804 1月 15 23:21 Labixiaoxin.jpeg

查看HDFS上的文件内容

命令:hdfs dfs -text(cat) HDFS文件路径

示例:查看HDFS上的/hello.txt文件:

hdfs dfs -text /hello.txt
2020-01-15 23:26:13,355 INFO sasl.SaslDataTransferClient: SASL encryption trust check: 
localHostTrusted = false, remoteHostTrusted = false
hello world hello
hello welcome world

查看文件内容使用-cat命令也是可以的,例如:

hdfs dfs -cat /hello.txt
2020-01-15 23:27:45,549 INFO sasl.SaslDataTransferClient: SASL encryption trust check: 
localHostTrusted = false, remoteHostTrusted = false
hello world hello
hello welcome world

如果不是文本文件,使用这两个命令打开时,会直接显示二进制内容。

统计目录下各文件大小

命令:hdfs dfs -du HDFS目录路径

示例:查看根目录下各文件大小

hdfs dfs -du /
0 0 /dataset
38 38 /hello.txt
0 0 /helloworld
263804 263804 /temp

删除HDFS上的文件或文件夹

命令:hdfs dfs -rm(r) 文件存放路径

示例:删除/hello.txt文件:

hdfs dfs -rm /hello.txt
Deleted /hello.txt

示例:删除/upload目录及其子目录

hdfs dfs -rmr /temp
rmr: DEPRECATED: Please use '-rm -r' instead.
Deleted /temp

在生产环境要谨慎使用-rmr命令,小心要删库跑路。

 

 

不允许评论
粤ICP备17049187号-1