添加更多 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 更快地抓取单个站点。
为了使单个提取器任务更快(并且更积极地从单个主机(或域,取决于 partition.url.mode 的值)提取),需要调整以下配置属性:fetcher.server.delay
、fetcher.threads.per.queue
以及其他提取器属性。
允许更多的获取程序任务(Hadoop 节点)并行抓取同一个网站,URLPartitioner's getPartition method needs to be modified, see this discussion。
请注意,未经同意让 Nutch 更具侵略性可能会导致被抓取网站的管理员投诉,并增加被阻止的可能性!
我正在使用 Apache Nutch(1.18 版本)抓取网页。
我认为增加更多的hadoop节点可以使Nutch抓取网页更快。
然而,事实并非如此。 3个datanode和5个datanode爬取几乎没有区别
我也添加了 --num-fetchers 参数(值为 5,因为我的 hadoop 数据节点数是 5)。
请帮我找出问题所在。
只有覆盖许多网站(主机/域)的广泛网络爬网才会从添加更多 Hadoop 节点中获益。如果只抓取少量站点,并行化不会使 Nutch 更快。默认情况下,Nutch 配置为表现得礼貌,不会并行访问单个站点,并且还会在同一站点的连续提取之间等待。
但是有一些方法可以使 Nutch 更快地抓取单个站点。
为了使单个提取器任务更快(并且更积极地从单个主机(或域,取决于 partition.url.mode 的值)提取),需要调整以下配置属性:
fetcher.server.delay
、fetcher.threads.per.queue
以及其他提取器属性。允许更多的获取程序任务(Hadoop 节点)并行抓取同一个网站,URLPartitioner's getPartition method needs to be modified, see this discussion。
请注意,未经同意让 Nutch 更具侵略性可能会导致被抓取网站的管理员投诉,并增加被阻止的可能性!