在Hadoop中查看压缩文件内容

7
我该如何在HDFS中解压并查看压缩文件中的几行。以下命令显示了压缩数据的最后几行:
hadoop fs -tail /myfolder/part-r-00024.gz

有没有办法使用-text命令并将输出导向tail命令?我尝试过了,但不起作用。
hadoop fs -text /myfolder/part-r-00024.gz > hadoop fs -tail /myfolder/
4个回答

19
以下内容将展示如何在不解压整个文件的情况下查看指定行数的内容:
hadoop fs -cat /hdfs_location/part-00000.gz | zcat | head -n 20
以下将对文件进行分页,同时不需要先将整个文件解压缩:
hadoop fs -cat /hdfs_location/part-00000.gz | zmore

4
尝试以下方法,只要您的文件不太大(因为整个文件都会被解压缩),这种方法就能起作用:
hadoop fs -text /myfolder/part-r-00024.gz | tail

我已经尝试过了。这在我的本地机器上创建了一个名为tail的文件,大小约为9 GB。我的服务器是一个使用hadoop MapR客户端而不是Linux服务器的Windows 2008服务器。 - nobody
然后,您将需要运行一个Hadoop作业,将数据解压缩到HDFS,然后尾随解压缩的文件,我想。 - mattinbits
好的,最终我编写了一个Pig脚本来查看内容。谢谢。 - nobody

1
我最终写了一个Pig脚本。
A = LOAD '/myfolder/part-r-00024.gz' USING PigStorage('\t');
B = LIMIT A 10;
DUMP B;

0
使用gunzip命令查看压缩文件的内容:
 hdfs dfs -cat /path/filename.gz | gunzip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接