我一直在尝试运行MapReduce作业,该作业涉及使用Hbase作为源和接收器。但是,当我尝试使用HBase客户端软件包0.92.1时,事情似乎有效。但是,当我使用0.94.2及更高版本时,它给出了以下DNS相关错误。我想使用更新的HBase客户端软件包,希望有人能告诉我什么是错的。感谢
我已禁用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 :(得分:1)
这似乎是Java中的一个已知问题。 https://bugs.openjdk.java.net/browse/JDK-6991580,我确信还有一个Oracle错误,但找不到它。
答案 1 :(得分:0)
一般情况下,在混合HBase和Hadoop版本时应该非常小心,因为它们通常不能很好地相互配合。真正有用的东西是使用类似Cloudera的发行版,捆绑兼容版本的HBase / Hadoop / Hive / Pig等......
您是否有任何特定原因要使用0.94.2版本的HBase?