在使用 java 运行 Hadoop map reduce 作业时抛出空指针异常
Posted
技术标签:
【中文标题】在使用 java 运行 Hadoop map reduce 作业时抛出空指针异常【英文标题】:While running Hadoop map reduce job using java Null pointer exception is being thrown 【发布时间】:2016-01-08 15:19:14 【问题描述】:提前谢谢...
我正在运行 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)
在独立运行时,它工作正常,没有抛出异常。
请帮助我们解决这个问题...
【问题讨论】:
@Dragan Bozanovic :框架内出现错误。不是来自我的代码。 【参考方案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 中目录的配置。
【讨论】:
以上是关于在使用 java 运行 Hadoop map reduce 作业时抛出空指针异常的主要内容,如果未能解决你的问题,请参考以下文章
hadoop——在命令行下编译并运行map-reduce程序 2