在 Hadoop 高可用的基础上搭建 HBase 高可用
在 Hadoop 高可用的基础上搭建 HBase 高可用
当Hadoop高可用搭建完成后,需要进一步再Hadoop高可用集群上搭建HBase高可用时,过程如下:
前提说明:
我的集群为三台机器,每台机器上都有ZooKeeper,使用用户名和主机名(
Username@Hostname
)分别如下:1
2
3master@master
master@slaver01
master@slaver02首先保证 ZooKeeper 正常部署
1
zkServer.sh start
需要保证Hadoop正常部署
1
2[master@master ~]$ start-dfs.sh
[master@slaver01 ~]$ start-yarn.sh解压HBase
配置环境变量
生效环境变量
修改配置文件
修改
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<configuration>
<!-- HBase数据在HDFS中的存放的路径 -->
<!-- 这里 ns 是 Hadoop 的 nameservice的值, 指向的是一个高可用的通道 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns/hbase</value>
</property>
<!-- HBase 的运行模式 -->
<!-- false是单机模式, 若为 false, HBase 和 ZooKeeper 会运行在同一个 JVM 里面 -->
<!-- true是分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slaver01,slaver02</value>
</property>
<!-- ZooKeeper快照的存储位置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.6/data</value>
</property>
<!-- V2.1版本,在伪分布式情况下, 设置为 false -->
<!-- 当使用 hdfs 时, 设置为 true -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>需要注意的是:
这里使用了
ns
这个高可用通道,因此需要将Hadoop的core-site.xml
与hdfs-site.xml
移动到/opt/module/hbase-2.1.0/conf
下修改
regionserver
文件1
2
3master
slaver01
slaver02
在 Hadoop 高可用的基础上搭建 HBase 高可用