HBase MapReduce中的空指针异常 [英] Nullpointer exception in HBase MapReduce

查看:252
本文介绍了HBase MapReduce中的空指针异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个mapreduce应用程序,它接收一个HBase源数据并将其映射到另一个HBase表中,所有这些表都是用Java编写的。当我使用

I have a mapreduce app that takes an HBase source data and mapreduces it to another HBase table, all written in Java.When I run it using

hadoop jar myhbase.jar 

它以 NullpointerException
如下:

It terminated with a NullpointerException as below:


14/01/31 11:07:02 INFO zookeeper.ClientCnxn: Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session
14/01/31 11:07:02 INFO zookeeper.ClientCnxn: Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x143e677d6e30007, negotiated timeout = 180000
14/01/31 11:07:03 INFO mapreduce.TableOutputFormat: Created table instance for hourinfo
14/01/31 11:07:03 INFO mapred.JobClient: Cleaning up the staging area hdfs://192.168.1.149:9000/hadoop_tmp/mapred/staging/root/.staging/job_201401310933_0002
Exception in thread "main" java.lang.NullPointerException
        at org.apache.hadoop.net.DNS.reverseDns(DNS.java:72)
        at org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.reverseDNS(TableInputFormatBase.java:219)
        at org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.getSplits(TableInputFormatBase.java:184)
        at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:962)
        at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:979)
        at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:174)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:897)
        at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
        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:1121)
        at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:500)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:530)
        at mapreduce.hi.api.hbase.HBaseJobRunner.main(HBaseJobRunner.java:37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

我正在使用 hbase-0.94.5 hadoop-1.0.4 。我真的坚持这个错误。请帮助..

I am using hbase-0.94.5 and hadoop-1.0.4. I am really stuck on this error.Please help..

推荐答案

好的,我解决了这个问题。从异常我得到它源于 TableInputFormatBase.getSplits()。当我分析 TableInputFormatBase 的源代码时,它是寻找作业配置参数 hbase.nameserver.address 。当我从我的代码中设置此值时,它工作。

Okay I fixed the issue. From the exception I got it originated from TableInputFormatBase.getSplits() .When I analyze source code of TableInputFormatBase, it is looking for a job configuration parameter hbase.nameserver.address . When I set this value from my code, it worked.

这篇关于HBase MapReduce中的空指针异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆