HBase 分布式搭建
作者:mmseoamin日期:2023-12-19

文章目录

      • ZooKeeper 安装
        • 解压并改名
        • 添加环境变量
        • 配置服务器编号
        • 配置 zoo.cfg 文件
        • 文件分发与同步
        • 启动 ZooKeeper
        • HBase 安装
          • 解压
          • 配置环境变量
          • 配置 HBase 相关文件
          • 解决 log4j 兼容性问题
          • 文件分发与同步
          • 启动 HBase 集群

            前言:

            请先确保 Hadoop 集群搭建完成。

            • Hadoop 完全分布式搭建(超详细)

              搭建环境介绍:

              三台主机,一主两从,系统为 Centos 7.5。

              相关组件版本信息如下:

              • jdk1.8
              • hadoop-3.1.3
              • zookeeper-3.5.7
              • hbase-2.2.3

                注意,以下安装教程中涉及到的路径请替换成自己的!

                ZooKeeper 安装

                解压并改名
                # 解压文件
                cd /opt/software/
                tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
                # 改名
                cd /opt/module
                mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7
                
                添加环境变量
                vim /etc/profile
                

                文件末尾插入如下代码:

                #ZOOKEEPER_HOME
                export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
                export PATH=$PATH:$ZOOKEEPER_HOME/bin
                

                最后使修改生效:source /etc/profile

                配置服务器编号

                在 ZooKeeper 安装目录下创建一个文件夹 zkData,在 zkData 中创建一个文件 myid 用以保存服务器编号。

                # 进入 ZooKeeper 安装目录
                cd $ZOOKEEPER_HOME
                # 创建文件夹
                mkdir zkData
                # 创建文件并添加编号
                cd zkData
                echo 1 > myid
                
                配置 zoo.cfg 文件
                # 进入 ZooKeeper 的配置文件目录
                cd $ZOOKEEPER_HOME/conf/
                # 修改文件名称
                mv zoo_sample.cfg zoo.cfg
                # 编辑 zoo.cfg 文件
                vim zoo.cfg
                

                修改数据的存储位置,指定为:/opt/module/zookeeper-3.5.7/zkData

                然后在文件末尾添加服务器配置,如下所示:

                server.1=master:2888:3888
                server.2=slave1:2888:3888
                server.3=slave2:2888:3888
                #监听所有IP
                quorumListenOnAllIPs=true
                

                注意,每一行的后面都不要有空格。

                HBase 分布式搭建,在这里插入图片描述,第1张

                添加完成后保存并退出。

                文件分发与同步

                在 master 服务器中将 ZooKeeper 安装文件分发到其它服务器上。

                scp -r /opt/module/zookeeper-3.5.7/ slave1:/opt/module/
                scp -r /opt/module/zookeeper-3.5.7/ slave2:/opt/module/
                

                在 master 服务器中将环境变量文件同步至其它服务器中。

                rsync /etc/profile root@slave1:/etc/profile
                rsync /etc/profile root@slave2:/etc/profile
                

                我们分别进入 slave1、slave2 服务器中,先初始化环境变量,然后修改 ZooKeeper 编号,编辑 myid 文件,依次写入为:2,3。

                启动 ZooKeeper

                我们分别进入 master、slave1、slave2 服务器中,启动 ZooKeeper 服务。

                # 启动 ZooKeeper
                zkServer.sh start
                

                启动完成后会显示出如下 STARTED 提示:

                HBase 分布式搭建,在这里插入图片描述,第2张

                我们也可以通过命令 jps 来检查 ZooKeeper 服务是否启动,如下所示:

                HBase 分布式搭建,在这里插入图片描述,第3张

                HBase 安装

                解压
                cd /opt/software/
                # 解压 HBase 安装包
                tar -zxvf hbase-2.2.3-bin.tar.gz -C /opt/module/
                
                配置环境变量

                通过 vim /etc/profile 命令编辑配置文件,在文件末尾输入如下代码(不可以有空格):

                #HBASE_HOME
                export HBASE_HOME=/opt/module/hbase-2.2.3
                export PATH=$PATH:$HBASE_HOME/bin
                

                然后,保存并退出。执行命令 source /etc/profile,使刚刚的配置生效。

                配置 HBase 相关文件

                首先切换到 HBase 安装文件的 conf 目录下。

                cd $HBASE_HOME/conf
                

                1、修改 hbase-env.sh 文件

                在文件末尾添加如下内容:

                export HBASE_MANAGES_ZK=false
                export JAVA_HOME=/opt/module/jdk1.8
                

                添加完成后保存并退出。

                2、配置 hbase-site.xml 文件

                在 configuration 标签中添加如下内容:

                   
                   
                      hbase.zookeeper.quorum
                      master,slave1,slave2
                   
                   
                   
                      hbase.rootdir
                      hdfs://master:8020/hbase
                   
                   
                   
                        hbase.cluster.distributed
                        true
                   
                  
                   
                   
                        hbase.unsafe.stream.capability.enforce
                        false
                   
                

                修改完成后保存并退出。

                3、修改 regionservers 文件

                添加如下内容:

                master
                slave1
                slave2
                

                添加完成后保存并退出。

                解决 log4j 兼容性问题

                HBase 与 Hadoop 在运行时会出现 log4j 兼容性问题,这是因为 HBase 的 log4j 版本与 Hadoop 的产生了冲突,我们这里将 HBase 的 log4j 设置为备份。

                mv /opt/module/hbase-2.2.3/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar /opt/module/hbase-2.2.3/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar.bak
                
                文件分发与同步

                将 master 服务器的 HBase 安装文件分发到 slave1、slave2 服务器上。

                cd /opt/module
                scp -r hbase-2.2.3/ slave1:/opt/module
                scp -r hbase-2.2.3/ slave2:/opt/module
                

                将 master 服务器的环境变量文件与 slave1、slave2 服务器进行同步。

                rsync /etc/profile slave1:/etc/profile
                rsync /etc/profile slave2:/etc/profile
                

                在 slave1、slave2 服务器上分别执行 source /etc/profile 使发送来的配置生效。

                启动 HBase 集群

                只需要在 master 服务器上执行。

                # 启动 HBase 服务
                start-hbase.sh
                

                启动后会出现如下提示:

                HBase 分布式搭建,在这里插入图片描述,第4张

                验证 HBase 节点在三台机器上的运行情况,正常启动如下图所示:

                HBase 分布式搭建,在这里插入图片描述,第5张

                HBase 分布式搭建完成啦!