nutch1.17网络爬网与存储优化

djmepvbi  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(300)

我正在使用nutch1.17爬过百万个网站。为此,我必须执行以下操作。
一次性作为深度爬虫运行爬虫程序,以便它从给定(100万)域获取最大URL。第一次,你最多可以运行48小时。
在此之后,运行爬虫与相同的100万个域5至6小时后,只选择那些网址是新的这些领域。
作业完成后,在solr中索引url
以后,不需要存储原始html,因此要保存存储(hdfs),只删除原始数据并维护每个页面的元数据,以便在下一个作业中,我们应该避免再次(在预定时间之前)重新获取页面。
没有任何其他处理或后分析。现在,我可以选择使用中等大小的hadoop集群(最多30台机器)。每台机器有16gb ram、12核和2 tb存储空间。solr机器也具有相同的空间。现在,为了保持以上,我很好奇以下几点:

a. How to achieve above document crawl rate i.e., how many machines are enough ? 
b. Should I need to add more machines or is there any better solution ?
c. Is it possible to remove raw data from Nutch and keep metadata only ?
d. Is there any best strategy to achieve the above objectives.
ruyhziif

ruyhziif1#

答。如何达到上述文件抓取率,即多少台机器是足够的?
假设在对同一个域的连续抓取之间选择了礼貌的延迟:假设每个域和每分钟可以抓取10页,最大抓取速率是每小时6亿页( 10^6*10*60 ). 一个拥有360个核心的集群应该足够接近这个速率。是否有可能在48小时内彻底抓取100万个域取决于每个域的大小。请记住,上面提到的每域每分钟10页的爬网率,只能获取 10*60*48 = 28800 48小时内每个域的页面数。
c。是否可以从nutch中删除原始数据并只保留元数据?
一旦一个段被索引,你就可以删除它。crawldb足以决定在100万个主页中找到的链接是否是新的。
作业完成后,在solr中索引url
可能在每个循环之后立即索引段。
b。我需要增加更多的机器还是有更好的解决方案?d。有没有实现上述目标的最佳策略。
很大程度上取决于域的大小是否相似。如果它们显示出幂律分布(这很可能),那么就有几个域有数百万个页面(几乎没有完全爬网),而有一个长尾域只有很少的页面(最多几百个页面)。在这种情况下,你需要更少的资源,但更多的时间来实现预期的结果。

相关问题