我有一个 10 GB 的 csv 文件,我想在 Hadoop MapReduce 中处理它。 我有一个 15 节点 (Datanode) 集群,我想最大化吞吐量。
我应该使用什么压缩格式?或未压缩的文本文件总能给我比压缩文本文件更好的结果。请解释原因。
我使用了未压缩的文件,它给了我比 Snappy 更好的结果。为什么会这样?
最佳答案
Snappy 压缩的问题在于它不可拆分,因此 Hadoop 无法将输入文件分成 block 并运行多个映射器来进行输入。因此,您的 10Gb 文件很可能由单个映射器处理(在应用程序历史 UI 中查看)。由于 hadoop 将大文件存储在不同机器上的单独 block 中,因此该文件的某些部分甚至不在映射器机器上,必须通过网络传输。这似乎是 Snappy 压缩文件比纯文本运行速度慢的主要原因。
为避免此问题,您可以使用 bzip2 压缩或手动将文件分成 block 并使用 snappy 压缩每个部分。
关于hadoop - mapreduce 中的压缩文件 VS 未压缩文件。哪个性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049455/