前提条件
- Zookeeper已安装并启动
- HDFS已启动(YARN可不启动)
版本说明
- 操作系统: CentOS 7
- Hadoop版本: Hadoop 3.2.1
- Zookeeper版本: Zookeeper3.4.14
- HBase版本: hbase-2.3.0
下载、解压
下载HBase安装包hbase-2.3.0-bin.tar.gz
并上传至服务器
注意选择与Hadoop对应的Hbase版本,具体可参考:http://hbase.apache.org/book.html#hadoop
1 2 3
| tar -zxvf hbase-2.3.0-bin.tar.gz # 集群所有全部解压可使用pdsh -a pdsh -a tar -zxvf /opt/hbase-2.3.0-bin.tar.gz -C /opt
|
配置文件
配置hbase-env.sh
末尾添加以下内容:
1 2
| export JAVA_HOME=/usr/local/jdk1.8.0_231 export HBASE_MANAGES_ZK=false
|
复制配置文件到其他集群
1
| pdcp -a hbase-env.sh /opt/hbase-2.3.0/conf/
|
配置/etc/profile
编辑,vim /etc/profile
,添加以下内容:
1 2 3 4
| # hbase environment export HBASE_HOME=/opt/hbase-2.3.0/ export PATH=$PATH:$HBASE_HOME/bin export PATH=$PATH:$HBASE_HOME/sbin
|
复制配置文件到其他集群
1
| pdcp -a /etc/profile /etc
|
使配置生效
1 2 3
| source /etc/profile # 或 pdsh -a source /etc/profile
|
验证
1 2
| echo $HBASE_HOME pdsh -a echo $HBASE_HOME
|
配置hbase-site.xml
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 30 31 32 33 34 35 36 37 38 39 40 41
| <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> <property> <name>hbase.rootdir</name> <!-- hadoop引入JQM负载均衡时,这里配置dfs.nameservices指定的集群逻辑名称 --> <value>hdfs://mycluster/hbase</value> <!-- 指定Hadoop master服务器的写法,hbase监听hdfs默认的端口是9000,这里的配置端口只能写9000 --> <!--<value>hdfs://hadoop.master01:9820/hbase</value>--> </property> <!-- 开启集群模式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.tmp.dir</name> <value>./tmp</value> </property> <!-- 解决启动HMaster无法初始化WAL的问题 --> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> <!-- 指定HBase Master web页面访问端口,默认端口号16010 --> <property> <name>hbase.master.info.port</name> <value>16010</value> </property> <!-- 指定HBase RegionServer web页面访问端口,默认端口号16030 --> <property> <name>hbase.regionserver.info.port</name> <value>16030</value> </property> <!-- 指定zookeeper集群,有多个用英文逗号分隔 --> <property> <name>hbase.zookeeper.quorum</name> <value>master:2181,slave1:2181,slave2:2181</value> </property> </configuration>
|
复制配置文件到其他集群
1
| pdcp -a /opt/hbase-2.3.0/conf/hbase-site.xml /opt/hbase-2.3.0/conf/
|
配置regionservers
复制配置文件到其他集群
1
| pdcp -a /opt/hbase-2.3.0/conf/regionservers /opt/hbase-2.3.0/conf/
|
复制HDFS配置文件
1 2 3 4 5
| cp /opt/hadoop-3.2.1/etc/hadoop/core-site.xml /opt/hbase-2.3.0/conf/core-site.xml cp /opt/hadoop-3.2.1/etc/hadoop/hdfs-site.xml /opt/hbase-2.3.0/conf/hdfs-site.xml # 或者 pdcp -a /opt/hadoop-3.2.1/etc/hadoop/core-site.xml /opt/hbase-2.3.0/conf/core-site.xml pdcp -a /opt/hadoop-3.2.1/etc/hadoop/hdfs-site.xml /opt/hbase-2.3.0/conf/hdfs-site.xml
|
配置HMaster高可用
在conf目录下创建backup-masters文件,添加以下内容(代表master、slave1两个节点启动HMaster):
复制配置文件到其他集群
1
| pdcp -a /opt/hbase-2.3.0/conf/backup-masters /opt/hbase-2.3.0/conf/backup-masters
|
启动
然后三台服务器分别执行jps,查看进程
从上面可以看出,HMaster和HRegionServer正好与backup-masters和regionservers对应
查看HMasterWeb的Web页面
从上面可以看出,当前hmaster的主节点(active)在master节点上
查看HRegionServer的Web页面
验证高可用
上面看到HMaster在master节点上,所以在master节点上执行:
从上面可以看出,杀掉master节点上的hmaster之后,slave1节点上的hmaster变成了主节点
重启master节点上的hmaster节点bin/hbase-daemon.sh start master
后
从上面可以看出,master节点上的hmaster重启后,变成了从节点
启动/关闭
启动/关闭集群
1 2
| bin/start-hbase.sh bin/stop-hbase.sh
|
启动/关闭单点
1 2 3 4
| bin/hbase-daemon.sh start master bin/hbase-daemon.sh stop master bin/hbase-daemon.sh start regionserver bin/hbase-daemon.sh stop regionserver
|