hbase高可用叢集部署(cdh)
阿新 • • 發佈:2018-12-27
作者簡介:趙海軍
現就職於某創業公司任職運維兼DBA,曾就職於獵豹移動,負責資料庫團隊,運維前線作者之一。
一、概要
本文記錄hbase高可用叢集部署過程,在部署hbase之前需要事先部署好hadoop叢集,因為hbase的資料需要存放在hdfs上,hadoop叢集的部署後續會有一篇文章記錄,本文假設hadoop叢集已經部署好,分散式hbase叢集需要依賴zk,並且zk可以是hbase自己託管的也可以是我們自己單獨搭建的,這裡我們使用自己單獨搭建的zk叢集,我們的hadoop叢集是用的cdh的發行版,所以hbase也會使用cdh的源。
二、環境
1、軟體版本
1 2 3 4 | centos6 zookeeper- |
2、角色
a、zk叢集
1 2 3 | 10.10.20.64:2181 10.10.40.212:2181 10.10.102.207:2181 |
b、hbase
1 2 3 4 5 | 10.10.40.212 HMaster 10.10.20.64 HMaster 10.10.10.114 HRegionServer 10.10.40.169 HRegionServer 10.10.30.174 HRegionServer |
三、部署
1、配置cdh的yum源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | vim /etc/yum.repos.d/cloudera-cdh.repo [cloudera-cdh5] # Packages for Cloudera's Distribution for Hadoop, Version 5.4.4, on RedHat or CentOS 6 x86_64 name=Cloudera's Distribution for Hadoop, Version 5.4.8 baseurl=http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.9.0/ gpgkey=http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera gpgcheck=1 [cloudera-gplextras5b2] # Packages for Cloudera's GPLExtras, Version 5.4.4, on RedHat or CentOS 6 x86_64 name=Cloudera's GPLExtras, Version 5.4.8 baseurl=http://archive.cloudera.com/gplextras5/redhat/6/x86_64/gplextras/5.9.0/ gpgkey=http://archive.cloudera.com/gplextras5/redhat/6/x86_64/gplextras/RPM-GPG-KEY-cloudera gpgcheck=1 |
2、安裝zk叢集(所有zk節點都操作)
a、安裝
1 | yum -y install zookeeper zookeeper-server |
b、配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | vim /etc/zookeeper/conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/lib/zookeeper clientPort=2181 maxClientCnxns=0 server.1=10.10.20.64:2888:3888 server.2=10.10.40.212:2888:3888 server.3=10.10.102.207:2888:3888 autopurge.snapRetainCount=3 autopurge.purgeInterval=1 mkdir -p /data/lib/zookeeper #建zk的dir目錄 echo 1 >/data/lib/zookeeper/myid #10.10.20.64上操作 echo 2 >/data/lib/zookeeper/myid #10.10.40.212上操作 echo 3 >/data/lib/zookeeper/myid #10.10.102.207上操作 |
c、啟動服務
1 2 3 4 5 6 | /etc/init.d/zookeeper-server start <strong>3、安裝配置hbase叢集</strong> <strong>a、安裝</strong> yum -y install hbase hbase-master #HMaster節點操作 yum -y install hbase hbase-regionserver #HRegionServer節點操作 |
b、配置(所有base節點操作)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | vim /etc/hbase/conf/hbase-site.xml hbase.zookeeper.quorum 10.10.20.64:2181,10.10.40.212:2181,10.10.102.207:2181 hbase.zookeeper.property.clientPort 2181 hbase.zookeeper.property.dataDir /data/lib/zookeeper/ hbase.rootdir hdfs://mycluster:8020/hbase hbase.cluster.distributed true 叢集的模式,分散式還是單機模式,如果設定成false的話,HBase程序和Zookeeper程序在同一個JVM程序 echo "export HBASE_MANAGES_ZK=false" >>/etc/hbase/conf/hbase-env.sh #設定hbase使用獨立的zk叢集 vim /etc/hbase/conf/regionservers ip-10-10-30-174.ec2.internal ip-10-10-10-114.ec2.internal ip-10-10-40-169.ec2.internal #新增HRegionServer的主機名到regionservers,我沒有在/etc/hosts下做主機名的對映,直接用了ec2的預設主機名 |
c、啟動服務
1 2 | /etc/init.d/hbase-master start #HMaster節點操作 /etc/init.d/hbase-regionserver start #HRegionServer節點操作 |
4、驗證
a、驗證基本功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [root@ip-10-10-20-64 ~]# hbase shell 2017-05-10 16:31:20,225 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available HBase Shell; enter 'help' for list of supported commands. Type "exit" to leave the HBase Shell Version 1.2.0-cdh5.9.0, rUnknown, Fri Oct 21 01:19:47 PDT 2016 hbase(main):001:0> status 1 active master, 1 backup masters, 3 servers, 0 dead, 1.3333 average load hbase(main):002:0> list TABLE test test1 2 row(s) in 0.0330 seconds => ["test", "test1"] hbase(main):003:0> describe 'test' Table test is ENABLED test COLUMN FAMILIES DESCRIPTION {NAME => 'id', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIO NS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} {NAME => 'name', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERS IONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} {NAME => 'text', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERS IONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} 3 row(s) in 0.1150 seconds hbase(main):004:0> |
b、驗證HA功能
1、hbase預設的web管理埠是60010,兩個HMaster誰先啟動誰就是主active節點,10.10.40.212先啟動,10.10.20.64後啟動,web截圖如下:
2、停止10.10.40.212的HMaster程序,檢視10.10.20.64是否會提升為master
1 | /etc/init.d/hbase-master stop |