1

我已经在伪分布式模式下设置了一个带有 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);

4

1 回答 1

1

既然你是独立运行的,为什么不先尝试使用与HBase一起运行的zookeeper呢?由于 HBase 在独立模式下管理自己的本地 zookeeper,因此使用它可能会减少遇到 bug 的机会,并且由于您需要管理的程序较少,因此您更容易解决问题。

要让 HBase 运行自己的 ZK 实例,请转到${HBASE_HOME}/conf/hbase-env.sh,一直滚动到底部并确保有一行export HBASE_MANAGES_ZK=true,或者该行被注释掉(因为默认情况下 HBase 管理自己的 ZK)

于 2012-05-09T01:44:48.167 回答