我试图使用 REST 端点公开 nutch,但在索引器阶段遇到了问题。我正在使用 elasticsearch 索引编写器将文档索引到 ES。我使用了 $NUTCH_HOME/runtime/deploy/bin/nutch startserver 命令。索引时抛出未知异常。
错误:
com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
16/10/07 16:01:47 INFO mapreduce.Job:映射 100% 减少 0% 16/10/07
16:01:49 信息 mapreduce.Job:任务 ID:
attempts_1475748314769_0107_r_000000_1,状态:失败错误:
com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
2007 年 10 月 16 日 16:01:53 信息 mapreduce.Job:任务 ID:
attempts_1475748314769_0107_r_000000_2,状态:失败错误:
com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
16/10/07 16:01:58 INFO mapreduce.Job:映射 100% 减少 100% 16/10/07
16:01:59 信息mapreduce.Job:作业 job_1475748314769_0107 失败
状态失败,原因是:任务失败 task_1475748314769_0107_r_000000 作业
由于任务失败而失败。失败地图:0 失败减少:1
错误indexer.IndexingJob:索引器:java.io.IOException:作业失败!
在 org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:865) 处
org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:145) 在
org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:228) 在
org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在
org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:237)
失败,退出代码为 255。
任何帮助,将不胜感激。
PS:使用堆栈跟踪进行调试后,我认为问题是由于番石榴版本不匹配造成的。我尝试更改插件的 build.xml(parse-tika 和 parsefilter-naivebayes),但它不起作用。
我已经找到了这个问题的解决方案。这是由于guava依赖的版本兼容性造成的。 Hadoop 使用 guava-11.0.2.jar 作为依赖项。但nutch中的弹性索引器插件需要18.0版本的guava。这就是为什么它在尝试在分布式 hadoop 中运行时抛出异常。所以我们只需要在hadoop libs中将guava版本更新到18.0(可以在$HADOOP_HOME/share/hadoop/common/libs/).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)