【问题标题】:How Map and Reduce operations are actually carried outMap 和 Reduce 操作是如何实际进行的
【发布时间】:2015-08-11 17:12:59
【问题描述】:

我已经解决了这个问题。谁能给出正确的答案并解释一下?

哪一项最能描述 TextInputFormat 如何处理输入文件和换行符?

A.输入文件拆分可能会跨越换行符。 RecordReader 读取跨越文件拆分的行 包含虚线开头的拆分。

B.输入文件拆分可能会跨越换行符。跨文件拆分的行由 包含虚线的两个拆分的 RecordReaders。

C.输入文件在换行符处被精确分割,因此每个 RecordReader 将读取一系列 完整的线条。

D.输入文件拆分可能会跨越换行符。跨越文件拆分的行将被忽略。

E.输入文件拆分可能会跨越换行符。 RecordReader 读取跨越文件拆分的行 包含虚线结尾的拆分。

提前致谢

【问题讨论】:

  • 这是作业的一部分吗?到目前为止,你最好的猜测是什么?基于什么研究?您已经能够排除其中一个答案了吗?
  • 我认为答案是 E,但不确定,与答案 A 和 E 混淆。

标签: hadoop mapreduce


【解决方案1】:

Linerecordreader 在下面的 textinputformat 类型调用的帮助下读取 map 调用的值,直到遇到新行(或其他分隔符,如果指定)。所以很明显,一条记录在遇到新行之前永远不会结束。

newSize = in.readLine(value, maxLineLength, Math.max((int)Math.min(Integer.MAX_VALUE, end-pos),maxLineLength));

所以选项 A 成立。

输入文件拆分可能会跨越换行符。跨越文件拆分的行由包含断行开头的拆分的 RecordReader 读取。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-06
    • 2015-09-09
    • 2014-10-28
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多