一、查看一堆文件共有多少行
查看file1/file2目录下所有文件总共多少行
hadoop fs -text file1/file2/* | wc -l
二、正则表达式
hadoop fs -text file1/file2/* | grep ','
匹配file1/file2/*文件中含逗号','的内容。
二、deflate文件
1、查看:(hdfs处理之后一种压缩文件),可以采用hadoop fs -text +文件名查看
2、解压:(解压一个文件)解压Hadoop的file1/file2目录下file_a文件到本地file_b文件中:
hadoop fs -text file1/file2/file_a.deflate>
(解压所有文件到本地一个文件)
hadoop fs -text file1/file2/*> file_b
三、从Hadoop上下载文件到本地当前目录下
【若报错:input/output,查看目录有没有写对,以及本地当前目录是否有权限写入,如果没有,修改文件权限】
hadoop fs -get hadoop_file1/file_2
四、检查文件存不存在test
test
使用方法:hadoop fs -test -[ezd] URI
选项:-e 检查文件是否存在。如果存在则返回0。-z 检查文件是否是0字节。如果是则返回0。-d 如果路径是个目录,则返回1,否则返回0。
示例:
hadoop fs -test -e filename
shell命令的返回值用 $? 表示;还需要执行 echo $?; 查看
五、统计目录下文件大小
-du 统计目录下文件大小 ; -du -s 汇总目录下文件大小,单位字节 ; -du -h ,显示目录下各个文件的大小。
-du -s -h /user/hive/warehouse/table_test
# 汇总该表所占据的存储空间,显示单位
六、两个集群之间的分布式拷贝:distcp
distcpfromlycc $REMOTE_DIR $HDFS_BASE_DIR
注意:lycc的远程路径是绝对路径,Hadoop 的hdfs路径也是绝对路径,不然会报什么不是挂载点错误
七、hadoop上命令行查看lzo、gz、bz文件
https://sukbeta.github.io/hadoop-lzo-gz-bz2/
HDFS上的文件可能是压缩的,所以用cat不能直接查看。hadoop上默认支持lzo、gz、bz2、snappy压缩格式。
我们用命令行查看HDFS上压缩文件,也是可以的。
lzo文件
- 查看 HDFS 上 lzo 文件的命令
hadoop fs -cat /Data/Logs/2018-08-22/2018-08-22_log.lzo | lzop -dc | head -1
或
hadoop fs -cat /Data/Logs/2018-08-22/2018-08-22_log.lzo | lzop -dc | head -1 lzop 会接受输入流然后解压输出流给head显示第一行
gzip 文件
- 查看 HDFS 上 gzip 文件的命令
hadoop fs -cat /shining/temp.txt.gz | gzip -d
或
hadoop fs -cat /shining/temp.txt.gz | zcat
bz2 文件
- 查看 HDFS 上 bz2 文件的命令
hadoop fs -cat /temp/b.bz2 | bzip2 -d
text 命令
Hadoop text 命令可以查看HDFS上的文本、压缩文件
hadoop fs -text /temp/b.bz2
hadoop fs -text /temp/test_hive.txt.gz
hadoop fs -text /temp/l.lzo
hadoop fs -text /tmp/out1/part-r-00000
九、统计hdfs文件的第二列等于1的行数
hadoop fs -text ./filename | awk '$2==1' | wc -l