我在具有 3 个工作节点的 Elastic MapReduce 上运行 Nutch。我正在使用 Nutch 1.4,它附带的默认配置(在添加用户代理之后)。
但是,即使我正在爬取包含 30,000 个域的列表,但获取步骤仅从一个工作节点运行,即使解析步骤在所有三个节点上都运行。
如何让它从所有三个节点运行 fetch 步骤?
*编辑* 问题是我需要将 mapred.map.tasks 属性设置为我的 Hadoop 集群的大小。您可以在此处找到此文档
我在具有 3 个工作节点的 Elastic MapReduce 上运行 Nutch。我正在使用 Nutch 1.4,它附带的默认配置(在添加用户代理之后)。
但是,即使我正在爬取包含 30,000 个域的列表,但获取步骤仅从一个工作节点运行,即使解析步骤在所有三个节点上都运行。
如何让它从所有三个节点运行 fetch 步骤?
*编辑* 问题是我需要将 mapred.map.tasks 属性设置为我的 Hadoop 集群的大小。您可以在此处找到此文档
默认情况下,nutch 根据其主机对 url 进行分区。中对应的属性nutch-default.xml
为:
<property>
<name>partition.url.mode</name>
<value>byHost</value>
<description>Determines how to partition URLs. Default value is 'byHost',
also takes 'byDomain' or 'byIP'.
</description>
</property>
请验证您的设置中的值。
我认为您的问题可以通过获得以下问题的答案来诊断: