我搜索了很多关于以下问题的信息:
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。有人可以告诉我这些版本是否兼容吗?
提前致谢!!
答案 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)