Hadoop + Hbase兼容性问题

时间:2011-12-06 22:19:19

标签: hadoop hbase eofexception

我搜索了很多关于以下问题的信息:

  

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

我找到了像What is the meaning of EOF exceptions in hadoop namenode connections from hbase/filesystem?和其他人这样的链接,但它们都没有为我工作。

现在我开始觉得我不能更好地理解版本兼容性问题。 令我最困惑的是关于Hadoop compatibility的Hbase文档,其类似于“此版本的Hbase将仅在Hadoop 0.20上运行”。 “这个”在这里指的是什么?它们是否意味着0.93快照(位于文档的顶部)?

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

提前致谢!!

2 个答案:

答案 0 :(得分: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。我昨天在邮件列表上回答了一个类似的问题EOFException in HBase 0.94(它的标题是0.94,应该是0.90.4),它提供了调试这个的其他线索。

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

答案 1 :(得分:-1)

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