分享

HBase HA (多HMaster)

redhat1986 发表于 2014-12-31 18:18:50 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 13 77992

网上大部分安装介绍都是基于单个HMaster的,这样会存在一个单点故障问题.这里我介绍下多个HMaster的安装配置,详见下面配置文件:



一、 hbase-env.sh 文件修改点:
# The java implementation to use.  Java 1.6 required.
export JAVA_HOME=/usr/java/latest
# Extra Java CLASSPATH elements.  Optional.
export HBASE_CLASSPATH=/home/hadoop/hadoop/etc/hadoop
# The maximum amount of heap to use, in MB. Default is 1000.
export HBASE_HEAPSIZE=1000
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=false
二、 hbase-site.xml文件配置:
<configuration>
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://mycluster/hbase</value>
    <description>The directory shared by RegionServers.</description>
</property>
<property>
    <name>hbase.master</name>
    <value>60000</value> <!--这里注意了,只需端口即可,不必再写主机名称了! -->
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>hadoopm,hadoop1,hadoop2</value>
</property>
<property>
      <name>hbase.zookeeper.property.clientPort</name>
      <value>2181</value>
</property>

<property>
     <name>hbase.zookeeper.property.dataDir</name>
     <value>/home/hadoop/data/zookeeper</value>
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>
    <name>hbase.tmp.dir</name>
    <value>/home/hadoop/data/hbase/</value>
</property>
</configuration>
三、regionservers文件配置:(其实这个文件的内容比较简单,主要是几个DataNode的主机名称)
hadoop1
hadoop2
hadoop3
hadoop4
四、这步主要做个说明:
   1.以上配置在所有主机的Hbase中都是一样的。
   2.Hbase安装在所有节点,包括NameNode,因为NameNode我主要是让其来管理HMaster的。
   3.因为我的安装是基于Hadoop的HA,我有两个NameNode,准备让这两个NameNode都运行HMaster。
   4.我有六台服务分别为hadoopm,hadoopm1这两个是NameNode,上面regionservers里配置的4个主机名是我的DataNode。
   5.现在开始启动:在hadoopm上hbase目录的bin下执行:./start-hbase.sh  
                   在hadoopm1上hbase目录的bin下执行:./hbase-daemon.sh start master
                  
      不出意外的情况下,这样就Ok了,可以试着打开浏览器看看Hbase了,然后在hadoopm上hbase目录的bin下执行:./hbase-daemon.sh stop master看看
      hadoopm1是否会自动接口HMaster。提示:建议看日志,日志里说的非常清楚!我就不演示了,这是此片日志的第二次写了,现在是用txt在本地写的,写完复制
      到网页里,刚才直接写在网页里,结果写了这么多没提交成功,全部没了!


如果说的有不对的地方敬请指正,谢谢!

已有(14)人评论

跳转到指定楼层
pengsuyun 发表于 2015-1-2 08:42:01
本帖最后由 pengsuyun 于 2015-1-8 10:19 编辑

看楼主的配置,跟我分布式hbase的配置好像没太大差别吧,普通的分布式就已经HA了,暂时不太清楚这个概念,求教了。
回复

使用道具 举报

fish_tx 发表于 2015-1-8 09:36:19
回复

使用道具 举报

YLV 发表于 2015-3-11 15:20:37
我也是这种方式配置的,namenode的ha结合hmaster的ha;但我遇到一个问题,我弄了多于2个的hmaster,其中一个hmaster和HRegionServer在一个节点上,此节点上不能同时启动hmaster和HRegionServer,查看日志是因为它们2个启动时绑定端口都是读取的regionserver的端口配置,个人感觉这个不太正确,为啥要读一个端口呢,难道此版本的hmaster和HRegionServer不能再一个节点上么?我用的hbase-1.0.0
回复

使用道具 举报

wangxuelei 发表于 2015-10-21 18:58:34
我按照方法配置的,就是namenode的ha结合hmaster的ha,但regionserver 起不来...,是什么原因?
回复

使用道具 举报

NEOGX 发表于 2015-10-21 21:17:44
wangxuelei 发表于 2015-10-21 18:58
我按照方法配置的,就是namenode的ha结合hmaster的ha,但regionserver 起不来...,是什么原因?

起不来,先看日志了。
起不来原因很多:
比如网络,配置等
回复

使用道具 举报

wangxuelei 发表于 2015-10-26 10:38:34
NEOGX 发表于 2015-10-21 21:17
起不来,先看日志了。
起不来原因很多:
比如网络,配置等

找到原因了,是hbase-site.xml文件中mycluster不识别是unKnowenHost,我在hdfs-site.xml中也配了,最后把core-site.xml和hdfs-site.xml拷贝到hbase的conf下,才解决此问题,你没这种情况吗?
回复

使用道具 举报

b469528 发表于 2015-11-20 10:08:17
wangxuelei 发表于 2015-10-26 10:38
找到原因了,是hbase-site.xml文件中mycluster不识别是unKnowenHost,我在hdfs-site.xml中也配了,最后把 ...

我也碰到你说的问题,我把core-site.xml 和hdfs-site.xml都放到hbase/conf下后,还是报错:UnknownHostException: wj
wj是我nameservice的名字。能帮我看一下吗,这个是我的配合文件:

core-site.xml


<configuration>

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://wj/</value>
  </property>

<property>
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/hadoop/tmp</value>
</property>

<property>
        <name>ha.zookeeper.quorum</name>
        <value>Smaster1:2181,Smaster2:2181,master2:2181</value>
</property>

</configuration>


hdfs-site.xml


<property>
    <name>dfs.nameservices</name>
    <value>wj</value>
</property>

<property>
  <name>dfs.ha.namenodes.wj</name>
  <value>nn1,nn2</value>
</property>

<property>
  <name>dfs.namenode.rpc-address.wj.nn1</name>
  <value>master1:8020</value>
</property>

<property>
  <name>dfs.namenode.rpc-address.wj.nn2</name>
  <value>master2:8020</value>
</property>

<property>
  <name>dfs.namenode.http-address.wj.nn1</name>
  <value>master1:50070</value>
</property>

<property>
  <name>dfs.namenode.http-address.wj.nn2</name>
  <value>master2:50070</value>
</property>

<property>
  <name>dfs.namenode.shared.edits.dir</name>
  <value>qjournal://Smaster1:8485;Smaster2:8485;master2:8485/wj</value>
  </description>
</property>

<property>
  <name>dfs.journalnode.edits.dir</name>
  <value>/opt/hadoop/dfs/name/journal/</value>
</property>

<property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
</property>


<property>
    <name>dfs.client.failover.proxy.provider.wj</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<property>
    <name>dfs.ha.fencing.methods</name>
    <value>
        sshfence
        shell(/bin/true)
    </value>
</property>

<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>~/.ssh/id_rsa</value>
</property>

<property>
    <name>dfs.ha.fencing.ssh.connect-timeout</name>
    <value>30000</value>
</property>

<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>


<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:///opt/hadoop/dfs/data</value>
</property>

<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:///opt/hadoop/dfs/name</value>
</property>

</configuration>

hbase-site.xml
<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://wj/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>Smaster1:2181,Smaster2:2181,master2:2181</value>
        </property>

</configuration>


点评

看下自己的host配置  发表于 2016-1-11 17:20
回复

使用道具 举报

supertianxiang 发表于 2016-1-11 17:11:36
wangxuelei 发表于 2015-10-26 10:38
找到原因了,是hbase-site.xml文件中mycluster不识别是unKnowenHost,我在hdfs-site.xml中也配了,最后把 ...

你好,能具体的讲一下,在hdsf-site.xml中修改了什么解决了这个问题吗?
回复

使用道具 举报

wscl1213 发表于 2016-1-11 17:23:34
supertianxiang 发表于 2016-1-11 17:11
你好,能具体的讲一下,在hdsf-site.xml中修改了什么解决了这个问题吗?

不需要修改什么,具体看自己的问题。
host配置确保正确。
最好参考标准文档

推荐:
hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档
http://www.aboutyun.com/thread-7684-1-1.html


每一步都核查好了,肯定不会出问题的
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条