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