Hadoop 使用小命令(2)

一、查看一堆文件共有多少行

查看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> file_b

      (解压所有文件到本地一个文件)

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

 

原文地址:https://www.cnblogs.com/Lee-yl/p/10906474.html