Hadoop FS Shell 操作命令
Hadoop FS Shell 常见命令
使用格式:
hadoop fs <arg>
- 所有的
FS shell
命令使用 URI 路径作为参数,URI格式是scheme://authority/path
。 - 对 HDFS 文件系统,scheme 是 hdfs;对本地文件系统, scheme 是 file。其中, scheme 和 authority 参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。
- 一个 HDFS 文件或目录,如:
/parent/child
可以表示成hdfs://namenode:namenodeport/parent/child
,或者更简单的/parent/child
(假设你配置文件中的默认值是 namenode:namenodeport )。推荐用户使用更简单的HDFS路径表达方式,不必过多关注 namenode 信息。
大多数 FS Shell 命令的行为和对应的 Unix Shell 命令类似,不同之处会在下面介绍中指出。出错信息会输出到 stderr,其他信息会输出到 stdout。
cat
将路径指定文件的内容输出到 stdout,使用方法:
hadoop fs -cat URI [URI ...]
示例:
hadoop fs -cat /user/slave/file1 hdfs://host2:port2/user/slave/file1
hadoop fs -cat file:///file3 /user/slave/file4
返回值:成功返回 0,失败返回 -1
hadoop 上命令行查看 lzo、gz、bz 文件
HDFS上的文件可能是压缩的,所以用cat
不能直接查看,Hadoop 上默认支持 lzo、gz、bz2、snappy 压缩格式。我们用如下命令在命令行查看 HDFS 上压缩文件。
lzo 文件
查看 HDFS上 lzo 文件的命令
# lzop 会接受输入流然后解压输出流给head显示第一行
hadoop fs -cat /Data/Logs/2021-05-28/2021-05-28_log.lzo | lzop -dc | head -1
gzip 文件
查看 HDFS上 gzip 文件的命令
hadoop fs -cat /hadoop/temp.tar.gz | gzip -d | head -1
# 或
hadoop fs -cat /hadoop/temp.tar.gz | zcat
bz2 文件
查看 HDFS上 bz2 文件的命令
hadoop fs -cat /hadoop/temp.bz2 | bzip2 -d
text
将源文件输出为文本格式。允许的格式是zip和TextRecordInputStream。
使用方法:
hadoop fs -text <src>
示例:
hadoop fs -text /hadoop/temp.bz2
hadoop fs -text /hadoop/temp.tar.gz
hadoop fs -text /hadoop/temp.lzo
hadoop fs -text /hadoop/out1/part-r-00000
chgrp
改变文件所属的组,使用 -R
将使改变在目录结构下递归进行。命令的使用者必须使文件的所有者或者使超级用户。更多的信息参见 HDFS权限用户指南。