HBase集群环境搭建
- 一、集群规划
- 二、前置条件
- 三、集群搭建
- 3.1 下载并解压
- 3.2 配置环境变量
- 3.3 集群配置
- 1. hbase-env.sh
- 2. hbase-site.xml
- 3. regionservers
- 4. backup-masters
- 3.4 HDFS客户端配置
- 3.5 安装包分发
- 四、启动集群
- 4.1 启动ZooKeeper集群
- 4.2 启动Hadoop集群
- 4.3 启动HBase集群
- 4.4 查看服务
- 参考文章
一、集群规划
这里搭建一个 3 节点的 HBase 集群,其中三台主机上均为 Regin Server。同时为了保证高可用,除了在 hadoop101 上部署主 Master 服务外,还在 hadoop102 上部署备用的 Master 服务。Master 服务由 Zookeeper 集群进行协调管理,如果主 Master 不可用,则备用 Master 会成为新的主 Master。
hadoop101 | hadoop102 | hadoop103 | |
---|---|---|---|
HBase | Master | Master | Slave |
二、前置条件
HBase 的运行需要依赖 Hadoop 和 JDK(HBase 2.0+ 对应 JDK 1.8+) 。同时为了保证高可用,这里我们不采用 HBase 内置的 Zookeeper 服务,而采用外置的 Zookeeper 集群。相关搭建步骤可以参阅:
CentOs环境下 JDK 安装
Zookeeper 单机环境和集群环境搭建
Hadoop 集群环境搭建
三、集群搭建
3.1 下载并解压
下载并解压Hbase,下载地址为:
官网:https://archive.apache.org/dist/hbase/2.3.7/ (版本齐全,但是下载比较慢)
镜像:https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.18/ (可选择版本较少,下载很快)
tar -zxvf hbase-2.4.18-bin.tar.gz -C /opt/module
3.2 配置环境变量
vim /etc/profile.d/my_env.sh
添加环境变量:
export HBASE_HOME=/opt/module/hbase-2.4.18
export PATH=$PATH:$HBASE_HOME/bin
使得配置的环境变量立即生效:
source /etc/profile.d/my_env.sh
3.3 集群配置
进入 ${HBASE_HOME}/conf 目录下,修改配置:
1. hbase-env.sh
vim /opt/module/hbase-2.4.18/conf/hbase-env.sh
# 配置JDK安装位置
export JAVA_HOME=/opt/module/jdk1.8.0_333/
# 不使用内置的zookeeper服务
export HBASE_MANAGES_ZK=false
2. hbase-site.xml
vim /opt/module/hbase-2.4.18/conf/hbase-site.xml
<configuration>
<property>
<!-- 指定 hbase 以分布式集群的方式运行 -->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<!-- 指定 hbase 在 HDFS 上的存储位置 -->
<name>hbase.rootdir</name>
<value>hdfs://hadoop101:8020/hbase</value>
</property>
<property>
<!-- 指定 zookeeper 的地址-->
<name>hbase.zookeeper.quorum</name>
<value>hadoop101:2181,hadoop102:2181,hadoop103:2181</value>
</property>
</configuration>
3. regionservers
vim /opt/module/hbase-2.4.18/conf/regionservers
hadoop101
hadoop102
hadoop103
4. backup-masters
vim /opt/module/hbase-2.4.18/conf/backup-masters
hadoop102
backup-masters 这个文件是不存在的,需要新建,主要用来指明备用的 master 节点,可以是多个,这里我们以 1 个为例。
3.4 HDFS客户端配置
这里有一个可选的配置:如果您在 Hadoop 集群上进行了 HDFS 客户端配置的更改,比如将副本系数 dfs.replication 设置成 5,则必须使用以下方法之一来使 HBase 知道,否则 HBase 将依旧使用默认的副本系数 3 来创建文件:
Add a pointer to your HADOOP_CONF_DIR to the HBASE_CLASSPATH environment variable in hbase-env.sh.
Add a copy of hdfs-site.xml (or hadoop-site.xml) or, better, symlinks, under ${HBASE_HOME}/conf, or
if only a small set of HDFS client configurations, add them to hbase-site.xml.
以上是官方文档的说明,这里解释一下:
第一种 :将 Hadoop 配置文件的位置信息添加到 hbase-env.sh 的 HBASE_CLASSPATH 属性,示例如下:
export HBASE_CLASSPATH=opt/module/hadoop-3.1.3/etc/hadoop
第二种 :将 Hadoop 的 hdfs-site.xml 或 hadoop-site.xml 拷贝到 ${HBASE_HOME}/conf 目录下,或者通过符号链接的方式。如果采用这种方式的话,建议将两者都拷贝或建立符号链接,示例如下:
# 进入hadoop配置目录
cd /opt/module/hadoop-3.1.3/etc/hadoop
# 拷贝
cp core-site.xml hdfs-site.xml /opt/module/hbase-2.4.18/conf/
# 使用符号链接
ln -s /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
ln -s /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
注:hadoop-site.xml 这个配置文件现在叫做 core-site.xml
第三种 :如果你只有少量更改,那么直接配置到 hbase-site.xml 中即可。
3.5 安装包分发
将 HBase 的安装包分发到其他服务器,分发后建议在这两台服务器上也配置一下 HBase 的环境变量。
cd /opt/module/
# 分发hbase
xsync hbase-2.4.18
cd /etc/profile.d/
# 分发环境配置
xsync my_env.sh
或者
scp -r /opt/module/hbase-2.4.18/ hadoop102:opt/module/
scp -r /opt/module/hbase-2.4.18/ hadoop103:opt/module/
在hadoop102、hadoop103上让环境变量生效
source /etc/profile.d/my_env.sh
四、启动集群
4.1 启动ZooKeeper集群
分别到三台服务器上启动 ZooKeeper 服务:
zkServer.sh start
4.2 启动Hadoop集群
# 启动dfs服务
start-dfs.sh
# 启动yarn服务
start-yarn.sh
4.3 启动HBase集群
进入 hadoop101 的 ${HBASE_HOME}/bin,使用以下命令启动 HBase 集群。执行此命令后,会在 hadoop101 上启动 Master 服务,在 hadoop102 上启动备用 Master 服务,在 regionservers 文件中配置的所有节点启动 region server 服务。
cd /opt/module/hbase-2.4.18/bin
./start-hbase.sh
4.4 查看服务
访问 HBase 的 Web-UI 界面,这里我安装的 HBase 版本为 1.2,访问端口为 60010,如果你安装的是 2.0 以上的版本,则访问端口号为 16010。可以看到 Master 在 hadoop101 上,三个 Regin Servers 分别在 hadoop101,hadoop102,和 hadoop103 上,并且还有一个 Backup Matser 服务在 hadoop102 上。
hadoop002 上的 HBase 出于备用状态:
参考文章
- HBase集群环境配置