1

我有一个 MapReduce 作业,它将 HBase 表作为我的 reduce 作业的输出目标。我的 reducer 类实现了TableMappackage 中的接口org.apache.hadoop.hbase.mapred,我使用package 中的类中的initTableReduceJob() 函数来配置我的工作。TableMapReduceUtilorg.apache.hadoop.hbase.mapred

但是当我运行我的工作时,我在减少阶段收到以下错误

java.lang.NullPointerException
at org.apache.hadoop.mapred.Task.getFsStatistics(Task.java:1099)
 at
org.apache.hadoop.mapred.ReduceTask$OldTrackingRecordWriter.<init>(ReduceTask.java:442)
at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:490)
 at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
 at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
 at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
at org.apache.hadoop.mapred.Child.main(Child.java:249)

我的 HBase 版本是 0.94.0,我的 Hadoop 版本是 1.0.1。

我在以下位置找到了与我的问题类似的帖子: https ://forums.aws.amazon.com/thread.jspa?messageID=394846

谁能给我一些暗示为什么会这样?我应该坚持使用org.apache.hadoop.hbase.mapreduce包裹吗?

4

1 回答 1

0

此错误表明您可能在没有 HDFS 的本地文件系统上运行 HBase。尝试安装或运行 Hadoop HDFS。org.apache.hadoop.mapred API 似乎需要 HDFS。

为方便起见,您可以尝试将两者都打包的Cloudera 开发 VM 。

于 2013-08-08T22:20:28.397 回答