我有一个Hadoop集群,由3个从服务器和1个主服务器组成,其中有一个HBase集群,分别包含3个RS和1个主服务器。此外,在3台机器上还有一个动物园管理员集合。
Hadoop集群运行正常,动物园管理员团队也是如此。但是,HBase群集未能正确初始化。
我从运行HBase开始运行./bin/start-hbase.sh。此正确地启动主服务器和区域服务器。正确设置hdfs中的hbase文件夹。
主上的jps
hduser@master:~/hbase$ jps
5694 HMaster
3934 JobHistoryServer
3786 NameNode
3873 ResourceManager
6025 Jps奴隶jps
5737 Jps
5499 HRegionServer
3736 DataNode
3820 NodeManager但是,HBase主服务器并不注册区域服务器,因为查看日志也可以看出这一点:
主日志
[master:master:60000] master.ServerManager: Waiting for region servers count to settle; currently checked in 0, slept for 1511 ms, expecting minimum of 1, maximum of 2147483647, timeout of 4500 ms, interval of 1500 ms.从日志
[regionserver60020] regionserver.HRegionServer: reportForDuty to master=master,60000,1404856451890 with port=60020, startcode=1404856453874
[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[connection-pending local=/10.0.2.15:53939 remote=master/192.168.66.60:60000]以下是配置细节:
/etc/主机在主上
192.168.66.63 slave-3 # Data Node and Region Server
192.168.66.60 master # Name Node and HBase Master
192.168.66.73 zookeeper-3 # Zookeeper node
192.168.66.71 zookeeper-1 # Zookeeper node
192.168.66.72 zookeeper-2 # Zookeeper node
192.168.66.62 slave-2 # Data Node and Region Server
192.168.66.61 slave-1 # Data Node and Region Server/etc/主机在从-1上
192.168.66.60 master
192.168.66.73 zookeeper-3
192.168.66.71 zookeeper-1
192.168.66.72 zookeeper-2所有集群节点上的hbase-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hduser/hbase/tmp</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.local.dir</name>
<value>/home/hduser/hbase/local</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>6010</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zookeeper-1,zookeeper-2,zookeeper-3,</value>
</property>
</configuration>主服务器和从服务器上的区域服务器文件
slave-3
slave-1
slave-2hbase-env.sh关于主从
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::"
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_MANAGES_ZK=false我做错了什么,这样节点就不能互相交谈了?我正在使用Hadoop2.4.0和Hbase 0.98.3,以及在Ubuntu可信的Tahr x64上使用ZooKeep3.4.6。
发布于 2014-07-09 20:48:31
Ian在HBase邮件列表上解开了我的谜团
本质上,我需要在奴隶的/etc/hosts中手动指定奴隶(我怀疑我只需要添加奴隶本身),这样我就得到了这样的结果:
所有从站(RS)上的/etc/主机
192.168.66.60 master
192.168.66.73 zookeeper-3
192.168.66.71 zookeeper-1
192.168.66.72 zookeeper-2
192.168.66.61 slave-1
192.168.66.62 slave-2
192.168.66.63 slave-3这是因为在从服务器上运行到eth接口,并且本地主机是在不同的IP上寻址的。
https://stackoverflow.com/questions/24642847
复制相似问题