我有一个MapReduce作业,它将HBase表作为输出目的地
我的减少工作。我的reducer类实现了TableMap
接口
包org.apache.hadoop.hbase.mapred
,我使用了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
包裹?
答案 0 :(得分:0)
此错误表明您可能在没有HDFS的本地文件系统上运行HBase。尝试安装或运行Hadoop HDFS。 org.apache.hadoop.mapred API似乎需要HDFS。
作为一种可能的方便,您可以尝试Cloudera development VM,两者都打包。