我根本无法将我的客户端计算机连接到 HBase。
客户端在 Windows 8 上运行。HBase 在 Fedora VM 上运行。
我导入了以下罐子:
commons-configuration (commons-configuration-1.6.jar)
commons-lang (commons-lang-2.6.jar)
commons-logging (commons-logging-1.1.1.jar)
hadoop-core (hadoop-core-1.2.1.jar)
hbase (hbase-0.94.11.jar)
log4j (log4j-1.2.16.jar)
protobuf-java-2.5.0.jar
slf4j-api (slf4j-api-1.5.8.jar)
slf4j-log4j (slf4j-log4j12-1.5.8.jar)
zookeeper (zookeeper-3.4.3.jar)
我看过这里:Hbase客户端无法连接到远程Hbase服务器 (我什至使用那里的问题代码)但这没有帮助。
我看过这里: https://www.mail-archive.com/[电子邮件受保护]/msg23159.html 但这也没有帮助。
我已编辑我的
/etc/hosts
以包含 "my_ip localhost"
。
我已将其包含在客户端和服务器端
hdfs-site.xml
:
<property>
<name>hbase.rootdir</name>
<value>file:///home/hadoop/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>Hadoop</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.master</name>
<value>Hadoop:60000</value>
</property>
<property>
<name>zookeeper.znode.rootserver</name>
<value>Hadoop</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
一切看起来都很好,除了这个:
INFO zookeeper.ClientCnxn: Session establishment complete on server ip/ip:2181, sessionid = 0x147d515db130006, negotiated timeout = 40000
我们在 hbase .96 上遇到了同样的情况。我们的客户也挂在同一个地方。我们用 hbase.98 jar 替换了 hbase .96 jar。问题的解决很有趣。这不是您问题的答案,但可能会有所帮助。
这个问题发布已经有一段时间了。
我遇到了完全相同的问题,它可能有两个根源:
您的 IP 配置错误(由 Christian Wirth 详细介绍)
或者您使用的 jar 和您运行的 hbase 版本之间存在兼容性问题。
我使用 Cloudera 通过 Hadoop/Hbase 安装 Parcel,因此我添加了 /opt/cloudera/parcels 中的 JAR,它就可以工作了。
希望对一些人有帮助
Dee,ozhang 说的很有道理。这不是错误,它表示我们能够成功连接到 Zookeeper。这是版本控制问题。 我的情况是一样的。我在服务器中有版本0.98.0.2.1.5.0-695-hadoop2。我尝试了 hbase jar 版本 0.96,0.98.9 , 0.98.13 ..但是它不起作用。然后我尝试了 0.98.5-hadoop2 版本的 hbase 并且它起作用了。谢谢!
我使用了以下链接:
[有用链接][1]http://www.informit.com/articles/article.aspx?p=2255108&seqNum=2
[信息][1]www.tech.theplayhub.com/java_-_hbase_client_stuck_on_session_builtment_complete/
我也遇到了同样的问题,今天解决了。 使用 IP,而不是计算机名。问题似乎是名称没有正确解析。使用 IP 解决了我的问题。
看看:Hbase管理的zookeeper突然尝试连接到本地主机而不是zookeeper仲裁 欲了解更多信息。
我修改了我的依赖关系
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>${hadoop.version}</version>
</dependency>
到
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>**hadoop-client**</artifactId>
<version>${hadoop.version}</version>
</dependency>
其中 ${hadoop.version} 为 2.5.1,与 /opt/hbase-1.1.2/lib/hadoop-client-2.5.1.jar
相同