Hadoop2.7.2高可用(HA)环境下Hbase高可用(HA)环境的搭建(在Ubuntu14.04下以root用户进行配置)

Hadoop2.7.2高可用(HA)环境下Hbase高可用(HA)环境的搭建

转载请注明出处:http://blog.csdn.net/qq_23181841/article/details/75095370

(在Ubuntu14.04下以root用户进行配置)
  1. 下载hbase-1.2.4-bin.tar.gz,并解压
            #tar -zxvf hbase-1.2.4-bin.tar.gz -C /home/
  1. 修改conf/hbase-site.xml文件
            #vim hbase-site.xml
     
   
  hbase.rootdir
  hdfs://nameserver/hbase
 
  hbase.master
  60000
hbase.tmp.dir
/home/hbase-1.2.4/hbase-tmp
 
   hbase.cluster.distributed
   true
 
 
   hbase.master.info.port
   60010
 
 
   hbase.regionserver.info.port
   60030
 
zookeeper.session.timeout
120000
    hbase.zookeeper.property.clientPort
    2181
 
 
   hbase.zookeeper.quorum
   master:2181,slaver1:2181,slaver2:2181
 
hbase.zookeeper.property.dataDir
/home/zookeeperData
hbase.regionserver.restart.on.zk.expire
true
  1.   hbase-site.xml 配置参数解析

1. hbase.rootdir
这个目录是 RegionServer 的共享目录,用来持久化 HBase。特别注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致。
(HA环境下,dfs.nameservices  是由zookeeper来决定的)
2. hbase.cluster.distributed
HBase 的运行模式。为 false 表示单机模式,为 true 表示分布式模式。若为 false,HBase 和 ZooKeeper 会运行在同一个 JVM 中

3. hbase.master

- 如果只设置单个 Hmaster,那么 hbase.master 属性参数需要设置为 master5:60000 (主机名:60000)
- 如果要设置多个 Hmaster,那么我们只需要提供端口 60000,因为选择真正的 master 的事情会有 zookeeper 去处理

4. hbase.tmp.dir
本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除)

5. hbase.zookeeper.quorum
对于 ZooKeeper 的配置。至少要在 hbase.zookeeper.quorum 参数中列出全部的 ZooKeeper 的主机,用逗号隔开。该属性值的默认值为 localhost,这个值显然不能用于分布式应用中。

6. hbase.zookeeper.property.dataDir
这个参数用户设置 ZooKeeper 快照的存储位置,默认值为 /tmp,显然在重启的时候会清空。因为笔者的 ZooKeeper 是独立安装的,所以这里路径是指向了 $ZOOKEEPER_HOME/conf/zoo.cfg 中 dataDir 所设定的位置。

7. hbase.zookeeper.property.clientPort
表示客户端连接 ZooKeeper 的端口。

8. zookeeper.session.timeout
ZooKeeper 会话超时。Hbase 把这个值传递改 zk 集群,向它推荐一个会话的最大超时时间

9. hbase.regionserver.restart.on.zk.expire
当 regionserver 遇到 ZooKeeper session expired , regionserver 将选择 restart 而不是 abort。
  1.  修改hbase-env.sh
               #vim hbase-env.sh
      export JAVA_HOME=/home/jdk1.7.0_80
      export HBASE_CLASSPATH= /home/hbase-1.2.4
      export HBASE_HEAPSIZE=4000
      export HBASE_LOG_DIR=${HBASE_HOME}/logs
      export HBASE_MANAGES_ZK=false        
参数注解:
      •   其中JAVA_HOME 和 HBASE_CLASSPATH 根据实际情况进行配置
      •   HBASE_HEAPSIZE 的大小根据你的集群配置,默认是 1000
      •   HBASE_LOG_DIR 是 HBase 日志存放位置
      •   HBASE_MANAGES_ZK=false 含义为 hbase 不托管 zookeeper 的启动与关闭,因为笔者的 ZooKeeper 是独立安装的
       
  1.   配置 regionservers
           #vim regionservers
               master
               slaver1
               slaver2
  1.   替换Hadoop的jar包
      由于 HBase 依赖于 Hadoop,因此在安装包的 lib 文件夹下包含了一个 Hadoop 的核心 jar 文件。在分布式模式下,HBase 使用的 Hadoop 版本必须和运行中的 Hadoop 集群的 jar 文件版本一致。将运行的分布式 Hadoop 版本的 jar 文件替换 HBase 的 lib 目录下的 Hadoop 的 jar 文件,以避免版本不匹配问题。确认替换了集群中所有节点的 HBase 安装目录下 lib 目录的 jar 文件。Hadoop 版本不匹配问题有不同的表现,但看起来 HBase 像挂掉了。

             cp ${HADOOP_HOME}/share/hadoop/common/hadoop-auth-2.7.2.jar ${HBASE_HOME}/lib/
         复制hadoop的core-site.xml和hdfs-site.xml到${HBASEHOME}/conf中,否则在启动时,Regionserver会启动失败,报错java.lang.IllegalArgumentException: java.net.UnknownHostException: nameserver
       #cp /home/hadoop-2.7.2/etc/hadoop/core-site.xml /home/hbase-1.2.4/conf/
       #cp /home/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /home/hbase-1.2.4/conf/

  1. 启动Hbase
               (1)在其中一台机器上:
                        #start-hbase.sh
                Hadoop2.7.2高可用(HA)环境下Hbase高可用(HA)环境的搭建(在Ubuntu14.04下以root用户进行配置)_第1张图片
                         有这两个进程,表明Hbase启动成功
          
               (2)在另外一台机器上再启动一个HMaster:
                      #hbase-demon.sh start master
                Hadoop2.7.2高可用(HA)环境下Hbase高可用(HA)环境的搭建(在Ubuntu14.04下以root用户进行配置)_第2张图片
通过Web访问:
http://192.168.10.180:60010/master-status
Hadoop2.7.2高可用(HA)环境下Hbase高可用(HA)环境的搭建(在Ubuntu14.04下以root用户进行配置)_第3张图片



http://192.168.10.179:60010/master-status


Hadoop2.7.2高可用(HA)环境下Hbase高可用(HA)环境的搭建(在Ubuntu14.04下以root用户进行配置)_第4张图片












你可能感兴趣的:(hadoop)