0

我有一个 300mb 的文本文件,块大小为 128mb。因此将创建总共 3 个块 128+128+44 mb。纠正我 - 对于 map reduce,默认输入拆分与可以配置的 128mb 块大小相同。现在记录阅读器将读取每个拆分并创建键值对,键是偏移量,值是单行。(TextInputFormat) 问题是,如果在我的块的最后一行,块结束但该行确实在另一个块中结束,那么该行的其余部分是否会从不同的节点中取出,或者剩余的行是否会在另一个节点中运行。另外,第二个节点如何理解它的第一行已经被处理并且不需要再次处理。

例如,这是 stackoverflow。这(块 1 结束/输入拆分)是一个 map reduce 示例。(行结束)

4

1 回答 1

0

将为此场景生成 3 个映射器。Hadoop 在每个块的末尾使用一个指针来指示下一个块的位置,因此映射器 1 将处理完整的行,这可能是块 2 的一部分,而映射器 2 将通过离开该行开始处理。

于 2017-12-28T20:03:00.290 回答