使用java时运行Hadoop map reduce作业会抛出异常指针异常

时间:2016-01-08 15:19:15

标签: java hadoop hbase bigdata

提前致谢...

我正在运行Hadoop版本0.20.0和HBase 0.94。我有一个聚合逻辑,它将使用调度程序每晚12点钟运行。我们处于无法升级HBase和Hadoop的阶段。在运行MapReduce作业时,它会抛出异常,如下所示,

java.lang.NullPointerException
        at org.apache.hadoop.conf.Configuration.getLocalPath(Configuration.java:877)
        at org.apache.hadoop.mapred.JobConf.getLocalPath(JobConf.java:280)
        at org.apache.hadoop.mapred.LocalJobRunner$Job.<init>(LocalJobRunner.java:89)
        at org.apache.hadoop.mapred.LocalJobRunner.submitJob(LocalJobRunner.java:373)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:800)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:432)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447)

独立运行时,它运行正常,没有异常被抛出。

请帮助我们......

1 个答案:

答案 0 :(得分:1)

查看getLocalPath的定义:http://grepcode.com/file/repo1.maven.org/maven2/com.google.code.maven-play-plugin.org.apache.hadoop/hadoop-core/0.20.2-with-200-826/org/apache/hadoop/conf/Configuration.java#Configuration.getLocalPath%28java.lang.String%2Cjava.lang.String%29

看来,如果我有正确版本的文件,String dirsProp不包含有关目录的信息。我猜测String [] dirs = getStrings(dirsProp);正在返回null。

这里的猜测是你在Hadoop中有一个关于目录的缺失配置。