Nutch 爬取成功后 Elasticsearch 索引失败

Elasticsearch indexing fails after successful Nutch crawl

我不确定为什么,但 Nutch 1.13 无法将数据索引到 ES (v2.3.3)。它正在爬行,这很好,但是当它索引到 ES 时它给我这个错误信息:

Indexer: java.io.IOException: Job failed!
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:865)
at org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:147)
at org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:230)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:239)

在那之前有这个:

elastic.bulk.close.timeout : elastic timeout for the last bulk in seconds. (default 600)

我不确定超时是否与作业失败有关?

我已经 运行 Nutch v1.10 多次使用都没有问题,但现在决定升级。以前从来没有过这个错误,直到现在,随着升级。

编辑: 仔细检查错误消息后:

    Error running:
  /home/david/tutorials/nutch/nutch-1.13/runtime/local/bin/nutch index -Delastic.server.url=http://localhost:9300/search-index/ searchcrawl//crawldb -linkdb searchcrawl//linkdb searchcrawl//segments/20170519125546

它似乎在那里失败了,在那个特定的部分,这是什么意思?我只知道如何使用 Nutch 的基础知识,我绝不是专家。它在 link 上失败了吗?

在 Nutch 1.14 发布之前,您需要应用此补丁 https://github.com/apache/nutch/pull/156 并重建:

cd apache-nutch-1.13
wget https://raw.githubusercontent.com/apache/nutch/e040ace189aa0379b998c8852a09c1a1a2308d82/src/java/org/apache/nutch/indexer/CleaningJob.java
mv CleaningJob.java  src/java/org/apache/nutch/indexer/.