2013-05-17 22 views
3

我一直在嘗試運行MapReduce作業,涉及使用Hbase作爲源和接收器。但是,當我嘗試使用HBase客戶端軟件包0.92.1時,事情似乎奏效。但是當我使用0.94.2及以上版本時,它給出了以下與DNS相關的錯誤。我想使用更新的HBase客戶端軟件包,並希望有人能告訴我什麼是錯的。謝謝hbase dns連接錯誤或可能是ipv6

我已經禁用了IPv6,並沒有使用它。我不知道爲什麼它不能解析DNSclient的字符串。

Exception in thread "main" java.lang.NumberFormatException: For input string:  "4f8:0:a102::add:9999" 
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
at java.lang.Integer.parseInt(Integer.java:458) 
at java.lang.Integer.parseInt(Integer.java:499) 
at com.sun.jndi.dns.DnsClient.<init>(DnsClient.java:103) 
at com.sun.jndi.dns.Resolver.<init>(Resolver.java:44) 
at com.sun.jndi.dns.DnsContext.getResolver(DnsContext.java:553) 
at com.sun.jndi.dns.DnsContext.c_getAttributes(DnsContext.java:413) 
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_getAttributes(ComponentDirContext.java:213) 
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.getAttributes(PartialCompositeDirContext.java:121) 
at com.sun.jndi.toolkit.url.GenericURLDirContext.getAttributes(GenericURLDirContext.java:85) 
at javax.naming.directory.InitialDirContext.getAttributes(InitialDirContext.java:123) 
at org.apache.hadoop.net.DNS.reverseDns(DNS.java:85) 
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:1064) 
at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1081) 
at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:174) 
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:993) 
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:946) 
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:1408) 
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:946) 
at org.apache.hadoop.mapreduce.Job.submit(Job.java:566) 
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:596) 
at hbase_mapred1.FreqCounter1.main(FreqCounter1.java:86) 
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:208) 

回答

0

一般來說,你應該混合HBase的和Hadoop版本時,他們往往不互相發揮好要非常小心。真正有幫助的東西就是使用像Cloudera的發行版,它捆綁HBase/Hadoop/Hive/Pig等兼容版本......

是否有任何特定的原因,爲什麼要使用0.94.2版本的HBase ?

+0

謝謝你的回答。實際上,我使用HBUO 0.94.2發佈的cloudera發行版,但問題是,使用HBase java客戶端0.94.2導致上述錯誤,同時使用HBase Java客戶端0.92.1似乎工作得很好。我只是好奇其他人是否面臨同樣的問題,或者也許只是我。 –

1

這似乎是Java中的一個已知問題。 https://bugs.openjdk.java.net/browse/JDK-6991580,我相信也有一個Oracle錯誤,但是找不到它。

+0

嗨,其實我上次已經能夠解決這個問題了。正如Ignacio Sales在下面指出的那樣,這是因爲Hadoop版本與HBase不兼容。我可以證實,HBase 0.94.2正與一些Hadoop版本一起工作,但並非全部。 –