hadoop:lzo压缩的自动可拆分输出

6yt4nkrj  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(418)

我正在设置lzo编解码器作为hadoop工作中的压缩工具。我知道lzo具有创建可拆分文件的理想特性。但我还没有找到一种方法让lzo自动创建可拆分文件。到目前为止,我读过的博客都提到在作业之外使用indexer,并将输出lzo文件作为mapreduce作业的输入。
我正在使用一些hadoop基准测试,我不想更改基准测试代码,只是在hadoop中使用lzo压缩来查看它对基准测试的影响。我计划使用lzo作为压缩map输出的编解码器,但是如果输出是不可拆分的,下一阶段将不得不在节点中获得整个压缩输出才能工作。
任何hadoop配置选项来指示lzo使输出文件可拆分,这样就可以透明地完成了吗?

b0zn9rqh

b0zn9rqh1#

这个项目提供了lzo可拆分性-https://github.com/toddlipcon/hadoop-lzo lzo不是自然可拆分的。如果您使用的是cloudera,下面是一篇如何安装正确lzo的文章-http://www.cloudera.com/content/cloudera/en/documentation/core/v5-2-x/topics/cm_ig_install_gpl_extras.html 由于某些许可证问题,默认情况下不会安装它。
更新5/2:与cloudera有相同问题。他们告诉我,这是不透明的,必须索引。所以它改变了我上面的回答。
你可以看看https://github.com/carlomedas/4mc -从描述上看,似乎很有希望。我还没用呢。它应该是可拆分的透明。

xtfmy6hx

xtfmy6hx2#

bzip2在hadoop中是可拆分的—它提供了非常好的压缩比,但从cpu时间和性能来看,并不能提供最佳结果,因为压缩非常消耗cpu。
lzo在hadoop中是可拆分的-利用hadoop lzo,可以拆分压缩的lzo文件。您需要有外部的.lzo.index文件才能并行处理。库提供了以本地或分布式方式生成这些索引的所有方法。
lz4在hadoop中是可拆分的-利用hadoop-4mc您可以拆分压缩的4mc文件。您不需要任何外部索引,您可以使用提供的命令行工具或通过java/c代码在hadoop内部/外部生成归档文件。4mc在hadoop lz4上提供了任何级别的速度/压缩比:从达到500 mb/s压缩速度的快速模式到提供更高压缩比的高/超模式,几乎与gzip模式相当。
zstd是更好的压缩,hadoop-4mc也支持它。

相关问题