完全分布式HBase错误

时间:2013-11-08 20:33:58

标签: hadoop hbase

我正在尝试将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.

3 个答案:

答案 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关)

参考链接:Connecting and Persisting to HBase