【问题标题】:Amazon emr: best compression/fileformatAmazon emr:最佳压缩/文件格式
【发布时间】:2014-04-23 17:18:57
【问题描述】:
我们目前有一些文件存储在 S3 服务器上。这些文件是经过 gzip 压缩以减少磁盘空间的日志文件(扩展名为 .log,但内容为纯文本)。
但 gzip 不可拆分,现在我们正在寻找一些好的替代方案来在 Amazon EMR 上存储/处理我们的文件。
那么在日志文件上使用的最佳压缩或文件格式是什么?我遇到了 avro 和 SequenceFile、bzip2、LZO 和 snappy。这有点多,我有点不知所措。
因此,我将不胜感激有关此事的任何见解。
数据将用于猪作业(map/reduce 作业)
亲切的问候
【问题讨论】:
-
当您说“可拆分”时,您到底在寻找什么功能?至于日志,这是一个不同的问题,您可以查看gzlog,了解如何有效地将短日志条目添加到 gzip 文件中。
标签:
amazon-web-services
hadoop
compression
apache-pig
amazon-emr
【解决方案1】:
如果您查看Best Practices for Amazon EMR,则有一节讨论压缩输出:
压缩映射器输出——压缩意味着更少的数据写入磁盘,
这改善了磁盘 I/O。您可以监控写入磁盘的数据量
通过查看 FILE_BYTES_WRITTEN Hadoop 指标。压缩也可以
帮助reducer提取数据的shuffle阶段。压缩可以
也有利于您的集群 HDFS 数据复制。启用压缩
通过将 mapred.compress.map.output 设置为 true。当您启用
压缩,也可以选择压缩算法。 LZO有
性能更好,压缩和解压速度更快。
【解决方案2】:
您好,我们可以根据用例使用以下算法。
-
GZIP(算法): 可拆分(无)、压缩比(高)、压缩和解压速度(中)
-
SNAPPY(算法): 可拆分(否),压缩比(LOW),压缩和解压缩速度(非常快)
-
BZIP2(算法): 可拆分(是),压缩比(非常高),压缩和解压缩速度(慢)
-
LZO(算法): 可拆分(Yes)、压缩比(LOW)、压缩和解压缩速度(FAST)