我正在尝试将HBase 0.96设置为在我的Hadoop 2.2.0群集上运行。我运行start-hbase.sh和master以及区域启动。我可以登录每个区域并查看正在运行的进程。但是,当通过web ui或shell命令检查有多少个区域时,我得到的响应为0.根据日志,区域服务器启动时看起来无法通知主服务器它们正在运行。我确认主设备正在侦听端口60000,端口60000和60020都在打开。我已经将我的hbase-site文件与来自区域服务器的日志一起包括在内。
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
<description>The directory shared by RegionServers.
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the cluster will be in. Possible values are
false: standalone and pseudo-distributed setups with managed Zookeeper
true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/master</value>
</property>
日志文件:
2013-11-08 20:08:58,357 INFO [regionserver60020] regionserver.HRegionServer: reportForDuty to master=10.119.102.58,60000,1383941300240 with port=60020, startcode=1383941300420
2013-11-08 20:09:18,636 WARN [regionserver60020] regionserver.HRegionServer: error telling master we are up
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[connec$
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1667)
at org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1708)
at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$BlockingStub.regionServerStartup(RegionServerStatusProtos.java:5402)
at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:1924)
at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:790)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.apache.hadoop.net.ConnectTimeoutException: 20000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending local=/100.65.$
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:532)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:493)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.setupConnection(RpcClient.java:573)
at org.apache.hadoop.hbase.ipc.RpcClient$Connection.setupIOstreams(RpcClient.java:858)
at org.apache.hadoop.hbase.ipc.RpcClient.getConnection(RpcClient.java:1532)
at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1421)
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1650)
... 5 more
2013-11-08 20:09:18,676 WARN [regionserver60020] regionserver.HRegionServer: reportForDuty failed; sleeping and then retrying.
答案 0 :(得分:0)
我认为hbase.zookeeper.quorum
设置不正确,这可能会导致连接超时。如果您只是要测试0.96,请在独立模式下启动它,然后确保在更改为分布式模式之前,zookeeper集群正在运行。
答案 1 :(得分:0)
HRegionServer抱怨它无法连接到HMaster以报告状态(向上)。 HMaster进程可能没有运行,因此您可能想要启动它,或者如果您已经启动它以检查主日志文件。
答案 2 :(得分:0)
使用以下命令检查主服务器是否正在侦听端口60000 netstat -l tcp6 0 0 Vostro-350:60000 : LISTEN
如果服务器正在侦听ipv6,则禁用它。
要禁用,您必须将以下内容附加到文件中:/etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
重新启动后,您应该通过以下方式验证IPV6是否真的关闭:
cat / proc / sys / net / ipv6 / conf / all / disable_ipv6
(0 = IPV6开; 1 = IPV6关)