hadoop - Nutch 1.17 网络爬取与存储优化

标签 hadoop solr hdfs nutch nutch2

我正在使用 Nutch 1.17 来抓取超过百万个网站。我必须为此执行以下操作。

  • 一次将爬虫作为深度爬虫运行,以便它应该从给定的(100 万)域中获取最大的 URL。第一次,您最多可以运行 48 小时。
  • 在此之后,在 5 到 6 小时后使用相同的 100 万个域运行爬虫,并且只选择那些域上的新 URL。
  • 作业完成后,在 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.
    

    最佳答案

    a. How to achieve above document crawl rate i.e., how many machines are enough ?


    假设选择了对同一域的连续提取之间的礼貌延迟:假设每个域每分钟可以提取 10 个页面,最大值。抓取速度为每小时 6 亿页 (10^6*10*60)。具有 360 个核心的集群应该足以接近这个速率。能否在 48 小时内彻底爬取一百万个域,取决于每个域的大小。请记住,提到的每域每分钟 10 个页面的抓取速度,只能获取 10*60*48 = 28800每个域的页面在 48 小时内。

    c. Is it possible to remove raw data from Nutch and keep metadata only ?


    一旦段被编入索引,您就可以将其删除。 CrawlDb 足以确定在 100 万个主页之一上找到的链接是否是新的。
    1. After the job completion, index URLs in Solr

    也许在每个周期后立即索引段。

    b. Should I need to add more machines or is there any better solution ? d. Is there any best strategy to achieve the above objectives.


    很大程度上取决于域的大小是否相似。如果它们显示出幂律分布(很可能),那么您的域很少有数百万页(几乎没有穷尽爬网)和只有几页(最多几百页)的长尾域。在这种情况下,您需要更少的资源,但需要更多的时间来达到预期的结果。

    关于hadoop - Nutch 1.17 网络爬取与存储优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64058149/

    相关文章:

    Solr 架构策略

    java - "process information unavailable", linux 中的 jps 命令

    hadoop - 从hadoop中的稀疏矩阵读取特定的行 block

    solr join函数多核查询文档NullPointerException

    hadoop - 如何显示Hdfs目录路径通过solr搜索作为输出?假设如果用户在solr中搜索,那么我想显示该目录的路径?

    hadoop - 如何在 Solr 中索引 HDFS pdf 文件?

    hadoop - 运行TeraSort时Datanode没有启动

    hadoop - 仅在 HDFS 文件的一部分上执行 MapReduce 作业

    hadoop - 无法启动名称节点。目录处于不一致状态 : storage directory does not exist or is not accessible

    security - 初始化 kadmin 界面时在 kerberos 数据库中找不到客户端