我已经在伪分布式模式下设置了一个带有 hadoop 和 hbase 的单个节点,当然也安装了 zookeeper 和 regionserver。
一切运行顺利,但是当通过 Java 客户端 API 连接到 hbase 时,我遇到了异常。
我尝试了几个小时来解决这个问题,但我做不到。我可以远程登录到 remotemachine:60000,所以这不是端口防火墙问题。日志也没有报告任何特殊情况。
(日志中的注释 debianhdfs 已正确设置为主机文件中的 IP)
12/05/06 19:47:27 INFO zookeeper.ClientCnxn:打开与服务器 debianhdfs/192.168.137.135:2181 的套接字连接 12/05/06 19:47:27 INFO zookeeper.ClientCnxn:与 debianhdfs/192.168 建立套接字连接。 137.135:2181,启动会话 12/05/06 19:47:27 INFO zookeeper.ClientCnxn:服务器 debianhdfs/192.168.137.135:2181 上的会话建立完成,sessionid = 0x13721c707ff002f,协商超时 = 40000 12/05/06 19:47 :28 INFO client.HConnectionManager$HConnectionImplementation:getMaster 尝试 0 of 1 失败;不再重试。java.net.ConnectException:连接被拒绝:在 sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source) at org.apache.hadoop.net.SocketIOWithTimeout 的 sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 没有更多信息.connect(SocketIOWithTimeout.java:
在独立模式下,非伪分布式我得到以下具有相同代码的异常:
12/05/06 20:32:49 INFO zookeeper.ClientCnxn:打开与服务器 debianhdfs/192.168.137.135:2181 的套接字连接 12/05/06 20:32:49 INFO zookeeper.ClientCnxn:与 debianhdfs/192.168 建立套接字连接。 137.135:2181,启动会话 12/05/06 20:32:49 INFO zookeeper.ClientCnxn:服务器 debianhdfs/192.168.137.135:2181 上的会话建立完成,会话 ID = 0x1372210f8fe0004,协商超时 = 40000 12/05/06 20:32 :49 INFO client.HConnectionManager$HConnectionImplementation:ZooKeeper 可用,但找不到活动的主位置 06 年 12 月 5 日 20:32:49 INFO client.HConnectionManager$HConnectionImplementation:getMaster 尝试 0 of 1 失败;不再重试。org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation 处的 org.apache.hadoop.hbase.MasterNotRunningException。
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "debianhdfs");
config.set("hbase.zookeeper.property.clientPort","2181");
HBaseAdmin.checkHBaseAvailable(config);