如何通过HDFS/Hadoop将gzip转换为bzip2

如何通过HDFS/Hadoop将gzip转换为bzip2,hadoop,mapreduce,hdfs,bzip2,Hadoop,Mapreduce,Hdfs,Bzip2,我有大量的数据文件来自一个客户端,都是gzip文件。我希望它们在.bzip2中,因为这是可拆分的,并且对于我前面的密集分析更可取 充分披露:我使用Hive,通常还没有做过比hadoop更基本的工作 我简单地尝试使用管道命令似乎是可行的,但它使用主节点的单一CPU进行操作,这将在2017年完成12 TB的转换 hadoop fs -cat /rawdata/mcube/MarketingCube.csv.gz | gzip -dc | bzip2 > cube.bz2 非常感谢关于如何将

我有大量的数据文件来自一个客户端,都是gzip文件。我希望它们在.bzip2中,因为这是可拆分的,并且对于我前面的密集分析更可取

充分披露:我使用Hive,通常还没有做过比hadoop更基本的工作

我简单地尝试使用管道命令似乎是可行的,但它使用主节点的单一CPU进行操作,这将在2017年完成12 TB的转换

hadoop fs -cat /rawdata/mcube/MarketingCube.csv.gz | gzip -dc | bzip2 > cube.bz2 

非常感谢关于如何将此作为MapReduce作业的任何提示,以便我可以对本周末重复访问的所有文件执行此操作(一次)。谢谢。

您可以使用的
PailFile
格式将Gzip文件存储到适合HDFS块大小的较小块中


这样,即使文件是gzip的,您的下一个作业(hive或其他作业)也可以在不同的拆分上并行化

在gzip中添加了一些伪拆分,请参见Remus,谢谢,但他在github上说“Hadoop 1.x还不受支持”,所以。。。。我们需要另一个选择见幻灯片7。我不明白PailFile是如何使一些在拆分形式中本质上不可用的东西可拆分的。