我试图在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)
无法找出问题所在。有什么想法吗?
2条答案
按热度按时间8gsdolmq1#
你可以试试下面的方法。
方法1:简单的检查方法是从浏览器
http://masterhost:60010.
方法2:
如果您是从java程序查询,那么运行任何查询之前的常规检查可以从您的客户机调用以下方法。
方法3:从sandbox它将告诉哪个端口hbase主机正在运行
方法4:我想您也可以从cloudera manager中查看,因为您使用的是cdh5.5
3mpgtkmj2#
您可以在计算机192.168.1.117上运行netstat-ntpl | grep 60000,以确认端口链接到进程。
运行ps-elf | grep**processidgotfromabove检查hbase master是否正在运行该进程。
如果hbase master正在运行,而port也在侦听60000,那么可以运行linux命令lsof-i:60000-r2,然后运行查询。如果连接成功到60000,那么在终端中,连接状态将从侦听变为已建立。
确保已禁用防火墙并且主服务器正在运行。