Amazon Elastic Map Reduce:输入片段大小重要吗
鉴于我需要使用 10 个实例处理 20 GB 的输入。 10 个 2Gb 输入文件与 4 个 5Gb 输入文件有何不同? 在后一种情况下,Amazon Elastic MapReduce 是否可以自动在 10 个实例之间分配 4 个输入文件的负载? (我使用流方法,因为我的映射器是使用 ruby 编写的)
Given I need to process input of 20 Gb with the use of 10 instances.
Is it different to have 10 input files of 2Gb compare to 4 input files of 5Gb?
In latter case, can Amazon Elastic MapReduce automatically distribute load of 4 input files across 10 instances? (I'm using Streaming method as my mapper is written using ruby)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
唯一重要的是文件是否可拆分。
如果文件是未压缩的纯文本或使用 lzo 压缩,那么 Hadoop 将进行分割。
x5 2gb 文件将导致约 100 个拆分,因此约 100 个映射任务(10gb / 128mb(EMR 块大小)~= 100)
x10 1gb 文件将再次导致约 100 个拆分,因此又会导致 100 个映射任务。
如果文件是 gzip 或 bzip2 压缩的,那么 Hadoop(至少在 EMR 上运行的版本)将不会拆分文件。
x5 2gb 文件将仅导致 5 个分割(因此只有 5 个映射任务)
x10 1gb 文件将仅导致 10 个分割(因此只有 10 个映射任务
)
The only thing that matters is whether the files are splittable.
If the files are uncompressed plain text or compressed with lzo then Hadoop will sort out the splitting.
x5 2gb files will result in ~100 splits and hence ~100 map tasks (10gb / 128mb (EMR blocksize) ~= 100)
x10 1gb files will result in again ~100 splits and hence, again, 100 map tasks.
If the files are gzip or bzip2 compressed then Hadoop (at least, the version running on EMR) will not split the files.
x5 2gb files will result in only 5 splits (and again hence only 5 map tasks)
x10 1gb files will result in only 10 splits (and again hence only 10 map tasks)
Mat