我正在尝试通过Eclipse运行坚果和Hadoop,并按照一些教程进行设置。我目前停留在nullpointerexception上,我认为这是由于找不到regex-urlfilter.txt和regex-normalize.xml引起的。
这是日志中的错误跟踪:-
[LocalJobRunner Map Task Executor #0] INFO org.apache.hadoop.conf.Configuration - regex-normalize.xml not found
4473 [LocalJobRunner Map Task Executor #0] WARN org.apache.nutch.net.urlnormalizer.regex.RegexURLNormalizer - Can't load the default rules!
4477 [LocalJobRunner Map Task Executor #0] DEBUG org.apache.nutch.util.ObjectCache - No object cache found for conf=Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml, file:/tmp/hadoop-338737067/mapred/local/localRunner/338737067/job_local1524701719_0001/job_local1524701719_0001.xml, instantiating a new object cache
4486 [LocalJobRunner Map Task Executor #0] INFO org.apache.hadoop.conf.Configuration - regex-urlfilter.txt not found
4486 [LocalJobRunner Map Task Executor #0] INFO org.apache.hadoop.mapred.MapTask - Starting flush of map output
4516 [LocalJobRunner Map Task Executor #0] DEBUG org.apache.hadoop.util.concurrent.ExecutorHelper - afterExecute in thread: LocalJobRunner Map Task Executor #0, runnable type: java.util.concurrent.FutureTask
4516 [Thread-3] INFO org.apache.hadoop.mapred.LocalJobRunner - map task executor complete.
4521 [Thread-3] WARN org.apache.hadoop.mapred.LocalJobRunner - job_local1524701719_0001
java.lang.Exception: java.lang.NullPointerException
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:491)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:551)
这两个文件都位于\ workspace \ apache-nutch-1.16 \ conf文件夹中,我不确定自己做错了什么。我已经仔细检查了是否为HADOOP_HOME和HADOOP_BIN正确设置了环境变量,并且它们指向正确的目录。我不确定他们要查找哪个目录来查找regex-urlfilter.txt和regex-normalize.xml。解决该问题的任何帮助将不胜感激。
我正在使用Hadoop 3.0.0和apache-nutch-1.16。
答案 0 :(得分:0)
conf/
文件夹必须位于Java类路径上。使用提供的脚本bin/nutch
或bin/crawl
之一运行Nutch最容易做到这一点。如果使用二进制包,则脚本位置为apache-nutch-1.16/bin/nutch
。对于源程序包,它是在执行apache-nutch-1.16/runtime/local/bin/nutch
之后的ant runtime
。使用脚本还可以使配置文件位于不同的目录中,并将NUTCH_CONF_DIR指向该目录。脚本会将这个位置放在类路径的前面。