首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区域服务器无法与HBase母版联系

区域服务器无法与HBase母版联系
EN

Stack Overflow用户
提问于 2014-07-08 23:00:13
回答 1查看 2.8K关注 0票数 1

我有一个Hadoop集群,由3个从服务器和1个主服务器组成,其中有一个HBase集群,分别包含3个RS和1个主服务器。此外,在3台机器上还有一个动物园管理员集合。

Hadoop集群运行正常,动物园管理员团队也是如此。但是,HBase群集未能正确初始化。

我从运行HBase开始运行./bin/start-hbase.sh。此正确地启动主服务器和区域服务器。正确设置hdfs中的hbase文件夹。

主上的jps

代码语言:javascript
复制
hduser@master:~/hbase$ jps
5694 HMaster
3934 JobHistoryServer
3786 NameNode
3873 ResourceManager
6025 Jps

奴隶jps

代码语言:javascript
复制
5737 Jps
5499 HRegionServer
3736 DataNode
3820 NodeManager

但是,HBase主服务器并不注册区域服务器,因为查看日志也可以看出这一点:

主日志

代码语言:javascript
复制
[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.

从日志

代码语言:javascript
复制
[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/主机在主上

代码语言:javascript
复制
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上

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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>

主服务器和从服务器上的区域服务器文件

代码语言:javascript
复制
slave-3
slave-1
slave-2

hbase-env.sh关于主从

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-09 20:48:31

Ian在HBase邮件列表上解开了我的谜团

本质上,我需要在奴隶的/etc/hosts中手动指定奴隶(我怀疑我只需要添加奴隶本身),这样我就得到了这样的结果:

所有从站(RS)上的/etc/主机

代码语言:javascript
复制
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上寻址的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24642847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档