Amazon Elastic Map Reduce:输入片段大小是不是重要

Posted

技术标签:

【中文标题】Amazon Elastic Map Reduce:输入片段大小是不是重要【英文标题】:Amazon Elastic Map Reduce: Does input fragments size matterAmazon Elastic Map Reduce:输入片段大小是否重要 【发布时间】:2011-07-07 09:05:36 【问题描述】:

鉴于我需要使用 10 个实例来处理 20 Gb 的输入。 有 10 个 2Gb 的输入文件与 4 个 5Gb 的输入文件有什么不同吗? 在后一种情况下,Amazon Elastic MapReduce 能否自动将 4 个输入文件的负载分配到 10 个实例? (我正在使用 Streaming 方法,因为我的映射器是使用 ruby​​ 编写的)

【问题讨论】:

【参考方案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 个地图任务)

垫子

【讨论】:

分割大小,就 mapred.max.split.size 而言是基于字节,而不是行。如果您使用 NLineInputFormat,您可以使用 mapred.line.input.format.linespermap 根据行数指定“拆分”。请参阅scribd.com/doc/23046928/Hadoop-Performance-Tuning 了解更多信息

以上是关于Amazon Elastic Map Reduce:输入片段大小是不是重要的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Map Reduce Hive 运行 v0.5?缺少函数:“str_to_map”、“reflect”

使用 Karmasphere Analyst 和 Amazon Elastic MapReduce 设置 jobconf 参数

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本

如何在 Amazon Elastic Mapreduce 之上使用 Hive 来处理 Amazon Simple DB 中的数据?

Amazon Elastic Beanstalk ebextension

Amazon Elastic Beanstalk:多个应用程序可以共享一个 Amazon RDS 数据库实例吗?