HBase中的旧式mapred API不起作用

时间:2012-11-26 16:30:54

标签: mapreduce hbase

我有一个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包裹?

1 个答案:

答案 0 :(得分:0)

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

作为一种可能的方便,您可以尝试Cloudera development VM,两者都打包。