如何解决添加更多 hadoop 节点不会提高 Nutch 爬网速度
我正在使用 Apache Nutch(1.18 版本)抓取网页。
我认为添加更多的 hadoop 节点会使 Nutch 抓取网页的速度更快。
然而,事实并非如此。爬3个datanode和5个datanode几乎没有区别。
我也添加了 --num-fetchers 参数(值是 5,因为我的 hadoop datanodes 的数量是 5)。
请帮我找出问题所在。
解决方法
只有覆盖许多网站(主机/域)的广泛网络爬行才能从添加更多 Hadoop 节点中受益。如果只抓取少量站点,并行化不会使 Nutch 更快。 Nutch 配置为默认行为礼貌,不会并行访问单个站点,并且还在从同一站点连续获取之间等待。
但是有一些方法可以让 Nutch 更快地抓取单个网站。
-
为了使单个获取器任务更快(并且更积极地从单个主机(或域,取决于 partition.url.mode 的值)获取),需要调整以下配置属性:
fetcher.server.delay
、fetcher.threads.per.queue
和其他 fetcher 属性。 -
为了允许更多的fetcher任务(Hadoop节点)并行抓取同一个网站,需要修改URLPartitioner's getPartition method,见this discussion。
请注意,在未经同意的情况下让 Nutch 更具攻击性可能会导致被抓取网站的管理员投诉并增加被阻止的可能性!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。