【问题标题】:Nutch does not Index on Elasticsearch correctly using MongodbNutch 没有使用 Mongodb 正确索引 Elasticsearch
【发布时间】:2017-02-14 13:13:55
【问题描述】:

我正在运行 Nutch 2.3.1、Mongodb 3.2.9 和 Elasticsearch 2.4.1。我遵循了本教程的混合:

https://qbox.io/blog/scraping-the-web-with-nutch-for-elasticsearch

本教程:

http://www.aossama.com/search-engine-with-apache-nutch-mongodb-and-elasticsearch/

为了使用上述 3 款软件创建一个网络爬虫工具。

一切都很好,直到它归结为索引......只要我使用来自 nutch 的 index 命令:

# bin/nutch index elasticsearch -all

发生这种情况:

IndexingJob: starting
Active IndexWriters :
ElasticIndexWriter
        elastic.cluster : elastic prefix cluster
        elastic.host : hostname
        elastic.port : port (default 9300)
        elastic.index : elastic index command
        elastic.max.bulk.docs : ealstic bulk index doc counts. (default 250)
        elastic.max.bulk.size : elastic bulk index length. (default 2500500 ~2.5MB)

IndexingJob: done.

我的 nutch-site.xml:

<configuration>
  <property>
    <name>storage.data.store.class</name>
    <value>org.apache.gora.mongodb.store.MongoStore</value>
    <description>Default class for storing data</description>
  </property>
  <property>
    <name>http.agent.name</name>
    <value>AOssama Crawler</value>
  </property>

  <property>
    <name>plugin.includes</name>
    <value>protocol-(http|httpclient)|urlfilter-regex|index-(basic|more)|query-(basic|site|url|lang)|indexer-elastic|nutch-extensionpoints|parse-(text|html|msexcel|msword|mspowerpoint|pdf)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-(html|tika|metatags)|index-(basic|anchor|more|metadata)</value>
  </property>
  <property>
    <name>elastic.host</name>
    <value>localhost</value>
  </property>

  <property>
    <name>elastic.cluster</name>
    <value>aossama</value>
  </property>

  <property>
    <name>elastic.index</name>
    <value>nutch</value>
  </property>

  <property>
    <name>parser.character.encoding.default</name>
    <value>utf-8</value>
  </property>

  <property>
    <name>http.content.limit</name>
    <value>6553600</value>
  </property>
</configuration>

我还查看了 ElasticIndexWriter.java 代码并注意到在第 250 行附近调用 ElasticIndexWriter 的类。我现在正在进一步研究,但我完全不知道为什么这不适用于 Mongo。我即将放弃并尽可能多地尝试使用 Hbase。

谢谢!

【问题讨论】:

  • 你可以试试这个脚本吗 :: bin/crawl -i 。它完成所有任务,包括索引
  • 好的,直到索引任务:跳过索引任务:没有提供 SOLR url。
  • 您是否在配置中为 solr 提供了有效的 url?
  • 我没有使用 Solr。我正在尝试使用 nutch 内置的 ElasticIndexWriter 来使用 Elasticsearch。
  • 使用 bin/nutch 索引 crawldb_location -linkdb linkdb_location -dir segments_dir OR bin/crawl -i seed_directory crawldb_location number_of_rounds

标签: mongodb elasticsearch nutch


【解决方案1】:

在经历了很多麻烦之后,我让它工作了。我最终使用了 ES 1.4.4、nutch 2.3.1、mongodb 3.10 和 JDK 8。

我遇到的许多问题在许多其他线程中仍未得到解答:

  • (这很简单,但是...)确保一切都在运行。制作 确保 elasticsearch 在正确的机器上运行 正确的端口。确保你可以和它交谈。确保 MongoDB 已启动 并在正确的端口上运行,确保您可以与它通信。
  • 使用正确的索引命令。对于 Nutch 3.2.1,它是: ./bin/nutch index -all(在您获取和解析之后)。如果遇到 solr 错误,说明您的 nutch-site.xml 中没有正确的索引功能。
  • 在您的 elasticsearch.yml 和 nutch-site.xml 中将您的爬虫引擎命名为 SAME THING。这是巨大的。这是我的索引函数中出现任何错误的主要原因。
  • 版本控制。我尝试使用较新版本的 Elasticsearch 执行此操作,但经常遇到问题。我将尝试在最新版本的 Elasticsearch 和 Mongo 上构建它,然后回到这个线程。尝试使用我首先使用的相同构建,然后尝试其他构建。使用 nutch 进行 Elasticsearch 版本控制似乎是最重要的部分,因为 ivy/ivy.xml 设置以及 indexer-elastic/plugin.xml 设置中与 gora 相关。

请,请,请,如果您对此有任何问题,请告诉我。我花了将近 2 整周的时间才弄清楚这个构建,我知道这会令人难以置信的沮丧。如果您遇到问题,请 PM 我或发帖,我相信我可以帮助您解决这些问题。

【讨论】:

  • 嗨,Joe,如果我的爬虫是 nutch-site.xml 中的 my-elasticsearch-crawler,我应该在 elasticsearch.yml 中设置什么?
  • 把它设置为同样的东西。抱歉回复晚了。
  • @JoeCrane 这个时候MongoDB的最新版本是3.4.6,3.10怎么用?
  • 抱歉,回复太晚了...如果我是你,我会使用 Norconex 爬行。这是一个更好、更容易使用的开源产品。
【解决方案2】:

Nutch 支持 elasticsearch 2.2.0 和 mongodb,分支中名为 2.x 的 gora 插件(对于 mongo 后端,您应该在 $NUTCH_HOME/ivy/ivy.xml 中打开)

<dependency org="org.apache.gora" name="gora-mongodb" rev="0.6.1" conf="*->default" />

除此之外,$NUTCH_HOME/src/plugin/indexer-elastic2/howto_upgrade_es.txt 中还有如何升级 elasticsearch 的信息

  1. 升级 $NUTCH_HOME/src/plugin/indexer-elastic2/ivy.xml 中的 elasticsearch 依赖项

  2. 升级 src/plugin/indexer-elastic2/plugin.xml 中的 Elasticsearch 特定依赖项 要获取依赖项列表及其版本,请执行:

$ ant -f ./build-ivy.xml
$ ls lib | sed 's/^/      <library name="/g' | sed 's/$/"\/>/g'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2013-02-20
    • 2020-01-24
    • 2019-06-26
    • 2013-12-02
    • 1970-01-01
    相关资源
    最近更新 更多