最近常常需要查看lzo文件里面的内容,这些文件通常很大,放在hdfs上。我没有好的方法,我以前偶尔查看其中内容都是直接get到本地然后用lzop解压缩然后再more的。这样做当你偶尔使用的时候即使文件稍微大点,也许也是可以接受的。但现在我需要常常grep里面的内容,就不那么欢乐了。
lzoc.sh脚本内容如下:
所以写了个shell脚本lzoc[ lzo cat],用来专门查看HDFS里lzo文件的内容,正常情况下它不输出任何多余的东西,这样就可以和more 、 head、tail等工具一起结合使用了。
它有三个选项:
-c 指示删除已经存在当前目录的同名文件,这往往是为了删除旧的副本而制定的,
-d 指示最后阶段删除当前目录里中间文件,因为我们会把文件从hdfs中get出来
-i 指示输出一些交互信息,如果你cat出来的内容要用作它用,那么你不要使用这个选项
$./lzoc /user/Hadoop/output/filename.lzo | more
lzoc.sh脚本内容如下:
#!/usr/bin/env bash
#description:
# cat the lzo file on hadoop
filePath="" #full Path of the hadoop lzo file
lzoFileName="" #file with .lzo as extension