我有一个 MapReduce 作业,它将 HBase 表作为我的 reduce 作业的输出目标。我的 reducer 类实现了TableMap
package 中的接口org.apache.hadoop.hbase.mapred
,我使用package 中的类中的initTableReduceJob()
函数来配置我的工作。TableMapReduceUtil
org.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
包裹吗?