带有nutch REST api的Nutch弹性分度器中的未知问题

时间:2016-10-07 12:06:17

标签: elasticsearch nutch

我试图使用REST端点暴露nutch并在索引器阶段遇到问题。我使用elasticsearch索引编写器将文档索引到ES。我使用了$ NUTCH_HOME / runtime / deploy / bin / nutch startserver命令。抛出索引未知异常时会抛出。

  

错误:   com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava / util的/并行/执行器;   16/10/07 16:01:47 INFO mapreduce.Job:地图100%减少0%16/10/07   16:01:49 INFO mapreduce.Job:任务ID:   attempt_1475748314769_0107_r_000000_1,状态:失败错误:   com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava / util的/并行/执行器;   16/10/07 16:01:53 INFO mapreduce.Job:任务ID:   attempt_1475748314769_0107_r_000000_2,状态:失败错误:   com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava / util的/并行/执行器;   16/10/07 16:01:58 INFO mapreduce.Job:地图100%减少100%16/10/07   16:01:59 INFO mapreduce.Job:工作职位_1475748314769_0107失败   状态FAILED由于:任务失败task_1475748314769_0107_r_000000作业   任务失败后失败。 failedMaps:0 failedReduces:1

     

错误indexer.IndexingJob:Indexer:java.io.IOException:作业失败!     在org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:865)at   org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:145)at   org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:228)at   org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at   org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:237)

     

退出代码255失败。

任何帮助都将不胜感激。

PS:使用堆栈跟踪调试后我认为问题是由于番石榴版本不匹配。我已经尝试更改插件的build.xml(parse-tika和parsefilter-naivebayes),但它没有用。

1 个答案:

答案 0 :(得分:2)

我找到了解决这个问题的方法。这是由于番石榴依赖的版本兼容性。 Hadoop使用guava-11.0.2.jar作为依赖。但是nutch中的弹性索引器插件需要18.0版本的番石榴。这就是为什么在尝试在分布式hadoop中运行时抛出异常的原因。所以我们只需要在hadoop库中将guava版本更新到18.0(可以在 $ HADOOP_HOME / share / hadoop / common / libs / 中找到)。