hadoop - mapreduce 中的压缩文件 VS 未压缩文件。哪个性能更好?

标签 hadoop mapreduce compression hdfs

我有一个 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/

相关文章:

hadoop - 在HIVE选择查询中,Mapper Reducer不会从零增加

hadoop - 使用 Yarn 运行 spark 作业时出现错误 :com. google.common.util.concurrent.Futures.withFallback

hadoop - 是否可以使用 Hadoop 在同一份工作中同时进行 Top Ten 和 JOIN?

hadoop - 如何正确使用 couchdb 链接 mapreduce 函数或正确分组

c++ - 内存映射内存可能吗?

xml - 如何将 WordprocessingML 文件夹压缩成可读的 docx

hadoop - pig : Failed to parse: mismatched input 'id' expecting set null

hadoop - 作业的可变/循环序列

hadoop - 获取快照导出失败

hadoop - 如何插入具有 Parquet 文件格式和 SNAPPY 压缩的配置单元表?