2014-01-31 3 views
0

가 나는 HBase를 소스 데이터를 받아 다른 HBase와 테이블에 mapreduces 맵리 듀스 응용 프로그램, 모든 Java.When 작성 나는 그것은 NullpointerException 종료Nullpointer 예외가

hadoop jar myhbase.jar 

사용하여 실행을 아래로 :


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 노드에 일치 역 있는지 확인 : 정말

답변

-1

그래, 문제가 해결되었습니다. 예외에서 나는 TableInputFormatBase.getSplits()에서 유래했습니다. TableInputFormatBase의 소스 코드를 분석 할 때, 작업 구성 매개 변수 hbase.nameserver.address을 찾고 있습니다. 코드에서이 값을 설정하면 효과가있었습니다.

+0

해당 속성을 설정하지 않아도 역방향 DNS가 작동하지 않습니다. – pferrel

1

체크 아웃 귀하의 스택 트레이스의 상단에 ..이 error.Please 도움에 부착하고있다.

+0

어떻게 확인할 수 있습니까? 도와주세요 –

+0

필요가 없습니다. 작업 구성으로 설정할 속성을 놓쳤습니다. 조언 해 주셔서 감사합니다. –

+0

@jtravaglini가 맞지만 문제를 진단하고 수정하는 방법에 대한 자세한 내용은 좋을 것입니다. – pferrel

관련 문제