mapreduce中的压缩文件与未压缩文件哪一个性能更好?

xzv2uavs  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(365)

我有一个10gbcsv文件,我想在hadoopmapreduce中处理它。我有一个15节点(datanode)集群,我想最大化吞吐量。
我应该使用什么压缩格式?或者没有压缩的文本文件总是比压缩的文本文件给我更好的结果。请解释原因。
我使用了未压缩的文件,它给了我比snappy更好的结果。为什么会这样?

zrfyljdw

zrfyljdw1#

snappy压缩的问题在于它是不可拆分的,因此hadoop不能将输入文件分成块并运行多个Map器来进行输入。因此,10gb文件很可能是由单个Map器处理的(请在应用程序历史ui中检查它)。由于hadoop将大文件存储在不同机器上的不同块中,因此该文件的某些部分甚至不在mapper机器上,必须通过网络传输。这似乎是snappy压缩文件比纯文本慢的主要原因。
为了避免这个问题,您可以使用bzip2压缩,或者手动将文件划分为块,然后使用snappy压缩每个部分。

相关问题