java - 为什么 Apache Nutch 清理作业在云模式下使用 Apache Solr 失败

标签 java solr centos nutch

我正在尝试在云模式下使用 Apache Solr 7.6.0 设置 Apache Nutch 1.15。爬网脚本 ( nutch/bin/crawl ) 工作正常,直到清理作业 ( CleaningJob.java ) 开始。然后它会无缘无故地失败( reason: NA )。

我已经成功设置了相同版本的 Nutch 和 Solr,但 Sorl 处于独立模式。

我正在使用以下命令以云模式启动 Solr:

solr/bin/solr start -cloud -p 8983 -s "solr/cloud/node1/solr"
solr/bin/solr start -cloud -p 7574 -s "solr/cloud/node2/solr" -z localhost:9983

我正在使用以下命令开始爬行过程:

nutch/bin/crawl -i -s nutch/urls/ --num-threads 400 --hostdbupdate --hostdbgenerate --num-tasks 16 --sitemaps-from-hostdb once niche-crawl 8

它在清洁工作中失败。 :

nutch/bin/nutch clean niche-crawl/crawldb

有一个异常(exception):
No exchange was configured. The documents will be routed to all index writers.
SolrIndexer: deleting 1000/1000 documents
SolrIndexer: deleting 1000/1000 documents
ERROR CleaningJob: java.lang.RuntimeException: CleaningJob did not succeed, job status:FAILED, reason: NA

        at org.apache.nutch.indexer.CleaningJob.delete(CleaningJob.java:169)
        at org.apache.nutch.indexer.CleaningJob.run(CleaningJob.java:197)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.nutch.indexer.CleaningJob.main(CleaningJob.java:208)

这是我的index-writers.xml对于云模式下的 Solr:

    <writer id="indexer_solr_1" class="org.apache.nutch.indexwriter.solr.SolrIndexWriter">
        <parameters>
          <param name="type" value="cloud"/>
          <param name="url" value="http://localhost:8983/solr"/>
          <param name="collection" value="nutch"/>
          <param name="weight.field" value=""/>
          <param name="commitSize" value="1000"/>
          <param name="auth" value="true"/>
          <param name="username" value="solr"/>
          <param name="password" value="password"/>
        </parameters>
        <mapping>
          <copy>
            <!-- <field source="content" dest="search"/> -->
            <!-- <field source="title" dest="title,search"/> -->
          </copy>
          <rename>
            <field source="metatag.description" dest="description"/>
            <field source="metatag.keywords" dest="keywords"/>
          </rename>
          <remove>
            <field source="segment"/>
          </remove>
        </mapping>
      </writer>

最佳答案

尝试升级到 Nutch 1.16 版。这听起来像是一个已知的错误 https://issues.apache.org/jira/browse/NUTCH-2731在 1.16 中已修复,请参阅 https://apache.org/dist/nutch/1.16/CHANGES.txt

关于java - 为什么 Apache Nutch 清理作业在云模式下使用 Apache Solr 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54141756/

相关文章:

java - 创建多个对象以实现 Spring Boot 最佳实践

solr - 如何对 SOLR 服务器进行负载平衡? Redis 是一个好的解决方案吗?

python - Askbot - 没有名为 xdg.Config 的模块

apache - 403 Forbidden - 无法解决,搜索高低

java - 减少TomcatDeployer的间隔

Java 套接字通过单个流传输多个文件

SOLR 分面搜索与 OR 运算符一样返回分面计数

solr - 从 Lucene 切换后,Sitecore GetQueryable 过滤器未返回 SOLR 的任何结果

php - "The stream or file "laravel.log "could not be opened: failed to open stream: Permission denied"

java - 在 Java 中获取堆栈跟踪