添加更多 hadoop 节点不会提高 Nutch 爬行速度

Add more hadoop nodes does not improve Nutch Crawling speed

我正在使用 Apache Nutch(1.18 版本)抓取网页。

我认为增加更多的hadoop节点可以使Nutch抓取网页更快。

然而,事实并非如此。 3个datanode和5个datanode爬取几乎没有区别

我也添加了 --num-fetchers 参数(值为 5,因为我的 hadoop 数据节点数是 5)。

请帮我找出问题所在。

只有覆盖许多网站(主机/域)的广泛网络爬网才会从添加更多 Hadoop 节点中获益。如果只抓取少量站点,并行化不会使 Nutch 更快。默认情况下,Nutch 配置为表现得礼貌,不会并行访问单个站点,并且还会在同一站点的连续提取之间等待。

但是有一些方法可以使 Nutch 更快地抓取单个站点。

  1. 为了使单个提取器任务更快(并且更积极地从单个主机(或域,取决于 partition.url.mode 的值)提取),需要调整以下配置属性:fetcher.server.delayfetcher.threads.per.queue 以及其他提取器属性。

  2. 允许更多的获取程序任务(Hadoop 节点)并行抓取同一个网站,URLPartitioner's getPartition method needs to be modified, see this discussion

请注意,未经同意让 Nutch 更具侵略性可能会导致被抓取网站的管理员投诉,并增加被阻止的可能性!