3

我一直在尝试运行涉及使用 Hbase 作为源和接收器的 MapReduce 作业。但是,当我尝试使用 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)
4

2 回答 2

1

这似乎是 Java 中的一个已知问题。https://bugs.openjdk.java.net/browse/JDK-6991580,我确信也存在Oracle错误,但找不到。

于 2014-01-21T11:03:44.333 回答
0

一般来说,在混合 HBase 和 Hadoop 版本时应该非常小心,因为它们通常不能很好地相互配合。真正有帮助的东西是使用 Cloudera 的发行版,它捆绑了 HBase / Hadoop / Hive / Pig 等的兼容版本......

您想使用 0.94.2 版本的 HBase 有什么具体原因吗?

于 2013-05-21T22:12:54.837 回答