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