0

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

4

1 回答 1

3

唯一重要的是文件是否可拆分。

如果文件是未压缩的纯文本或使用 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 个地图任务)

于 2011-07-08T23:41:25.400 回答