2

我对以下面临的问题进行了很多搜索:

java.io.IOException:调用 /10.0.1.37:50070 因本地异常失败:org.apache.hadoop.ipc.Client.wrapException(Client.java:1139) 处 org.apache.hadoop 处的 java.io.EOFException。 org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) 上的 ipc.Client.call(Client.java:1107) ....

我发现了以下链接:What is the meaning of EOF exceptions in hadoop namenode connections from hbase/filesystem? 和其他人,但没有一个对我有用。

现在我开始觉得我没有更好地理解版本兼容性问题。最让我困惑的是关于 Hadoop兼容性的 Hbase 文档,上面写着“这个版本的 Hbase 只能在 Hadoop 0.20 上运行”。这里的“这个”指的是什么?它们是指 0.93-snapshot(位于文档顶部)吗?

最后,我使用的是 Hadoop 版本 0.20.203 和 Hbase 0.90.4。有人能告诉我这些版本是否兼容吗?

提前致谢!!

4

2 回答 2

1

我同意这本书给出了一个关于“这个版本”的奇怪参考,也谈到了“0.93”。为了让事情更清楚一点,这本书目前超越了版本,但只存在于目前称为 0.93 的主干中(编译它会添加 -snapshot)。

无论如何,所有 HBase 版本目前都与所有 Hadoop 0.20.* 兼容,无论是 0.20.2 还是 0.20.205.0.,而后者是目前唯一支持追加的版本。您使用的版本 0.20.203 没有,如果区域服务器死机,您可能会丢失数据。

您的 EOF 异常可能是因为您没有正确交换 HBase lib/ 文件夹中的 Hadoop jar。我昨天在 HBase 0.94 中的 EOFException的邮件列表中回答了一个类似的问题(它被错误地命名为 0.94,它应该是 0.90.4),这为调试提供了其他线索。

最后,您的堆栈跟踪中有一个奇怪的端口号。50070 是 Web UI,而不是默认为 9000 的 Namenode RPC 端口。可能是您给 HBase 提供了错误的端口号。

于 2011-12-07T17:42:52.147 回答
-1

我从发布的链接中获取输入,它对我有用。只有我必须将 $HADOOP_HOME/lib 中的一个额外的 guava*.jar 复制到 $HBASE_HOME/lib 中(使用 hadoop-0.20.2)

于 2013-05-15T11:27:34.110 回答