DJE*_*bow 2 hadoop amazon-s3 amazon-web-services amazon-emr emr
我正在尝试确定存储在 S3 中的文件的理想大小,该文件将用于 EMR 上的 Hadoop 作业。
目前我有大约 5-10GB 的大文本文件。我担心将这些大文件复制到 HDFS 以运行 MapReduce 作业的延迟。我可以选择使这些文件更小。
我知道在 MapReduce 作业中使用 S3 作为输入目录时,S3 文件会并行复制到 HDFS。但是会使用单线程将单个大文件复制到 HDFS,还是会将该文件作为多个部分并行复制?另外,Gzip 压缩是否会影响将单个文件分成多个部分?
有两个因素需要考虑:
因此,在文件的大小和数量之间存在折衷。推荐的尺寸列在几个地方:
在亚马逊EMR FAQ建议:
如果您使用 GZIP,请将文件大小保持在1-2 GB,因为 GZIP 文件无法拆分。
在亚马逊EMR最佳实践白皮书建议:
这意味着单个映射器(单个线程)负责从 Amazon S3 获取数据。由于单个线程受限于它在任何给定时间(吞吐量)可以从 Amazon S3 提取多少数据,因此将整个文件从 Amazon S3 读入映射器的过程成为数据处理工作流的瓶颈。另一方面,如果您的数据文件可以拆分,则不止一个映射器可以处理您的文件。此类数据文件的合适大小介于 2 GB 和 4 GB 之间。
主要目标是通过并行处理尽可能多的文件来保持所有节点忙碌,而不会引入太多开销。
哦,继续使用压缩。磁盘空间和数据传输时间的节省使其比启用拆分更具优势。
归档时间: |
|
查看次数: |
3896 次 |
最近记录: |