簡體   English   中英

HBase MapReduce中的Nullpointer異常

[英]Nullpointer exception in HBase MapReduce

我有一個mapreduce應用程序,該應用程序接收一個HBase源數據並將其映射到另一個用Java編寫的HBase表中。

hadoop jar myhbase.jar 

它以NullpointerException終止,如下所示:


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.5hadoop-1.0.4 我確實對這個錯誤感到困惑。請提供幫助。

查看堆棧跟蹤的頂部:

 at org.apache.hadoop.net.DNS.reverseDns(DNS.java:72)

確保您的正向和反向DNS查找在您的HBase / ZK節點上完全匹配。

好吧,我解決了這個問題。 從異常中我得到它源自TableInputFormatBase.getSplits() 。當我分析TableInputFormatBase源代碼時,它正在尋找作業配置參數hbase.nameserver.address 當我從代碼中設置此值時,它就起作用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM