【问题标题】:Cloudera HBase ConnectTimeoutExceptionCloudera HBase ConnectTimeoutException
【发布时间】:2016-05-05 19:36:32
【问题描述】:

我正在尝试在 cloudera VM (5.5) 中查询 HBase,但出现以下异常:

Error connecting HBase: org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: org.apache.hadoop.net.ConnectTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=quickstart.cloudera/192.168.1.117:60000]
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$StubMaker.makeStub(HConnectionManager.java:1592)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(HConnectionManager.java:1618)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getKeepAliveMasterService(HConnectionManager.java:1826)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.isMasterRunning(HConnectionManager.java:848)
    at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:2359)

无法弄清楚可能是什么问题。有什么想法吗?

【问题讨论】:

  • 嗨,我的回答有用吗?你能解决这个问题吗?

标签: java hadoop hbase apache-zookeeper cloudera


【解决方案1】:

您可以尝试以下方法。

方法一: 简单的检查方法是从浏览器

http://masterhost:60010.

方法二:

如果您是从 java 程序查询,那么在运行任何查询之前的常规检查可能会从您的客户端调用以下方法。

 public static void checkWhetherHbaseIsRunning() throws MasterNotRunningException, ZooKeeperConnectionException {
        // Create the required configuration.
        Configuration conf = HBaseConfiguration.create();
        // Check if Hbase is running
        try{
        HBaseAdmin.checkHBaseAvailable(conf);
        }catch(Exception e){
            System.err.println("Exception at " + e);
            System.exit(1);
        }
    }

方法3:从沙箱它会告诉哪个端口hbase master正在运行

ps -aef | grep hmaster 

方法四: 我认为您也可以从 Cloudera 管理器中检查它,因为您使用的是 CDH5.5

【讨论】:

    【解决方案2】:

    您可以运行 netstat -ntpl |在机器 192.168.1.117 上 grep 60000 以确认端口已链接到进程。

    运行 ps -elf | grep **ProcessIDGotFromAbove 检查 HBase master 是否正在运行进程。

    如果 HBase Master 正在运行并且端口也在监听 60000,那么您可以运行 Linux 命令 lsof -i :60000 -r 2 然后运行查询。如果连接成功到60000,那么在终端中,连接状态会从Listing变成Established。

    确保您已禁用防火墙且 Master 正在运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 2017-12-11
      • 2017-10-31
      相关资源
      最近更新 更多