压缩文件VS mapreduce中的未压缩文件。哪一个给出了更好的表现?

时间:2017-02-05 07:09:29

标签: hadoop mapreduce compression hdfs

我有一个10 GB的csv文件,我想在Hadoop MapReduce中处理它。 我有一个15节点(Datanode)集群,我想最大化吞吐量。

我应该使用什么压缩格式?或没有压缩的文本文件总是会给我更好的压缩文本文件的结果。请解释原因。

我使用了未压缩的文件,它给了我比Snappy更好的结果。为什么会这样?

1 个答案:

答案 0 :(得分:0)

Snappy压缩的问题在于它不可拆分,因此Hadoop无法将输入文件划分为块并运行多个映射器进行输入。因此,很可能您的10Gb文件由单个映射器处理(在应用程序历史记录UI中检查)。由于hadoop将大文件存储在不同机器上的不同块中,因此该文件的某些部分甚至不位于映射器机器上,必须通过网络传输。这似乎是Snappy压缩文件比普通文本工作速度慢的主要原因。

为避免此问题,您可以使用bzip2压缩或手动将文件分成块,并使用snappy压缩每个部分。