【问题标题】:Apache Nutch 1.16 Fetcher reducers?Apache Nutch 1.16 Fetcher 减速器?
【发布时间】:2020-07-20 21:12:07
【问题描述】:

根据此处的 Apache Nutch 1.16 Fetcher 类实现 - https://github.com/apache/nutch/blob/branch-1.16/src/java/org/apache/nutch/fetcher/Fetcher.java,这是一个仅限地图的工作。 我没有在 Job 中看到任何减速器设置。所以我的问题是为什么不设置 job.setNumreduceTasks(0) 并通过直接输出到 HDFS 来节省时间。

【问题讨论】:

    标签: mapreduce web-crawler nutch


    【解决方案1】:

    所以在讨论了 Nutch 的用户邮件列表之后,我得出的结论是,即使没有与 Fetcher.java 关联的 reducer 类,它仍然需要,因为在这种情况下,输出需要按键排序,即 URL。 因此,如果我们设置 setNumreduceTasks = 0,则不会发生排序阶段,mapper 将直接写入 HDFS,您会在日志中注意到“key out of order exception”异常。

    代码详细信息-检查此行-https://github.com/apache/nutch/blob/branch-1.16/src/java/org/apache/nutch/fetcher/Fetcher.java#L490,它使用 FetcherOutputFormat.java 作为输出格式,如果您在此处查看此类https://github.com/apache/nutch/blob/branch-1.16/src/java/org/apache/nutch/fetcher/FetcherOutputFormat.java#L77,它使用 hadoop MapFile,它按顺序添加条目,因此排序阶段可以'不要被跳过。

    另外,请注意,除了抓取流程之外,还有其他工具,例如 SegmentReader (https://nutch.apache.org/apidocs/apidocs-1.16/org/apache/nutch/segment/SegmentReader.html),它们也希望对数据进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多