【问题标题】:Inject urls into Apache Nutch from mysql instead of seed.txt从 mysql 而不是 seed.txt 将 url 注入 Apache Nutch
【发布时间】:2016-09-16 09:47:12
【问题描述】:

我是 Apache Nutch 的新手,我想从 mysql 数据库中动态注入 url。 Apache Nutch 是否提供这种可能性?如果没有,有没有类似的实验可以借鉴?或者有什么建议?

【问题讨论】:

    标签: web-crawler nutch


    【解决方案1】:

    正如 Julien 所说,您应该修改 INJECTOR 代码来实现这一点。但是,我可以为此建议一种解决方法。您可以使用命令 bin/nutch startserver 在服务器模式下使用 NUTCH,然后从数据库中加载您的种子 URL。然后,您可以使用 Nutch REST API 使用从数据库加载的 url 创建种子列表,并将创建的种子文件指向 INJECT 作业创建服务调用。

    您可以在此处找到有关 REST api 的更多详细信息:-

    http://nutch.apache.org/miredot/1.12/index.html#1153761698 或者 https://docs.google.com/document/d/1OGg22ATohapP2ycewIaTcUnENc2FeyYzni0ED_Jjxz8/edit https://wiki.apache.org/nutch/NutchRESTAPI

    【讨论】:

      【解决方案2】:

      Nutch 1.x => 不是开箱即用的。您必须修改 Injector 代码,以便它从 MySQL 中读取,但这当然是可行的。我很久以前就为一位客户做过。

      或者,您可以使用StormCrawler,它有一个 MySQL 模块,应该不需要额外的工作来让它工作。我们博客上的Cloudsearch tutorial 展示了如何将 MySQL 与 SC 一起使用。

      Nutch 2.x 使用 GORA 作为中间层,IIRC 有一个 SQL 插件。不确定它的状态以及这是否合适。

      【讨论】:

      • 您好 Julien,感谢您的回答。不过我只对Nutch感兴趣。是的,Gora props 中有一个用于 apache nutch 2.3.1 的 mysql 插件,但我认为它仅用于存储数据而不用于 url 输入。我不确定当我取消注释 mysql 和 mongodb 时会发生什么(如果我只想将结果保存在 mongodb 中)。
      • 取消注释两者可能会导致我猜想一团糟;-)。如果我是你,我会坚持使用 Nutch 1.x(更好的性能,更少的配置等......)并编写一个自定义注入器。无论如何,你必须对 Nutch2.x 做同样的事情,除非你使用与 GORA 相同的序列化来处理你的种子,这可能不是你想要的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多