【发布时间】:2011-11-01 07:48:49
【问题描述】:
我正在评估 HBase Multiple master 实用程序,因为我需要该功能。我使用了一个简单的 4 机 hbase 集群,以 M1 作为 master。现在我也在 M4 中启动了 Hmaster。我可以在 M4 Master 日志中看到日志,因为这个 HMaster 正在等待,因为 M1 已经在充当 HMaster。
在这之后,我在 M1 中停止了 Master,几秒钟后,M4 主人接管了。但是我没有看到任何区域服务器与这个新的主服务器通信。区域服务器日志显示,
2011-10-31 23:21:18,834 WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:404)
at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:311)
at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:865)
at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:732)
at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)
at $Proxy3.getProtocolVersion(Unknown Source)
at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419)
at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)
at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)
at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:349)
at org.apache.hadoop.hbase.regionserver.HRegionServer.getMaster(HRegionServer.java:1443)
at org.apache.hadoop.hbase.regionserver.HRegionServer.tryRegionServerReport(HRegionServer.java:737)
at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:586)
at java.lang.Thread.run(Thread.java:619)
在我看到的 M4 Master 日志中,
2011-10-31 23:20:47,671 INFO org.apache.hadoop.http.HttpServer: listener.getLocalPort() returned 60010 webServer.getConnectors()[0].getLocalPort() returned 60010
2011-10-31 23:20:47,671 INFO org.apache.hadoop.http.HttpServer: Jetty bound to port 60010
2011-10-31 23:20:47,671 INFO org.mortbay.log: jetty-6.1.26
2011-10-31 23:20:48,691 INFO org.mortbay.log: Started SelectChannelConnector@0.0.0.0:60010
2011-10-31 23:20:48,691 DEBUG org.apache.hadoop.hbase.master.HMaster: Started service threads
2011-10-31 23:20:50,192 INFO org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to checkin
2011-10-31 23:20:51,695 INFO org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to checkin
2011-10-31 23:20:53,197 INFO org.apache.hadoop.hbase.master.ServerManager: Waiting on regionserver(s) to checkin
似乎区域服务器仅与 M1 Hmaster 通信,而不与新 Hmaster 通信!
我正在使用 Hbase - 0.90.0 版本
非常感谢您对此的任何帮助!
【问题讨论】:
-
今天看到zookeeper确认新的master是否在里面注册。刚刚使用了 zk_dump,新的主节点作为 Zookeeper 中的当前主节点存在。但是区域服务器仍然没有考虑到这一点。我希望区域服务器会通过与动物园管理员通信来更新其中的主信息。但这里似乎没有发生。有什么建议吗!!!
标签: hbase