HBase的分布式安装部署

HBase 分布式安装部署小笔记

前言

HBase的使用依赖于Hadoop和zookeeper,在安装部署HBase之前,要先安装好Hadoop和zookeeper(如果不安装zookeeper,HBase也自带了zookeeper,但HBase自带的zookeeper一般只用于简单测试使用,不能用于生产环境),Hadoop和zookeeper的安装部署可以分别参见我之前的博客:小坨的在CentOS6.4搭建hadoop集群的实践笔记小坨的Spark分布式集群环境搭建小笔记里安装zookeeper这一part。

在HBase中,Zookeeper的作用有

  • Leader选举,竞选出活跃的Master
  • 服务发现,发现Region Server上线配置服务
  • 保存Root Region Server的位置,表的Schema等
  • 任务协调,如Region的分配

下载HBase

在下载HBase之前,可以先查看HBase 和 Hadoop的版本依赖关系

由于我个人的Hadoop版本是2.7.7,所以我安装的HBase版本是2.1.x

HBase安装地址是:HBase Releases

解压并安装

解压HBase安装包至路径 /usr/local

sudo tar -zxf ~/hbase-2.1.0-bin.tar.gz -C /usr/local

将解压的安装包文件名更改为hbase

cd /usr/local
sudo mv ./hbase-2.1.0 ./hbase

把HBase目录权限赋予给Hadoop用户

cd /usr/local
sudo chown -R hadoop ./hbase

配置环境变量

vim ~/.bashrc
export PATH=$PATH:/usr/local/hbase/bin

执行source命令使上述配置生效

source ~/.bashrc

HBase配置

配置hbase-env.sh(/usr/local/hbase/conf/hbase-env.sh)

配置JDK的安装路径和禁用HBase自带的zookeeper服务,后续在HBase中配置使用自己外带的zookeeper的服务

export JAVA_HOME=/usr/local/java/jdk1.8.0_251
export HBASE_MANAGES_ZK=false

配置hbase-site.xml(/usr/local/hbase/conf/hbase-site.xml)

    <configuration>
            <property>
                    <name>hbase.tmp.dir</name>
                    <value>/usr/local/hbase/data/tmp</value>
            </property>
            <property>
                    <name>hbase.rootdir</name>
                    <value>hdfs://Master:9000/hbase</value>
            </property>
            <property>
                    <name>hbase.cluster.distributed</name>
                    <value>true</value>
            </property>
            <property>
            	<name>hbase.unsafe.stream.capability.enforce</name>
            	<value>false</value>
        	</property>
          	<property>
    			<name>hbase.zookeeper.quorum</name>
    			<value>Master,Slave1</value>
  			</property>
    </configuration>

其中hbase.cluster.distributed字段指定HBase是否以分布式形式运行,这里为true

hbase.rootdir字段指定HBase的数据文件是存放到Hadoop的哪个目录下

hbase.zookeeper.quorum字段指定zookeeper集群各个主机的位置

配置RegionServers(/usr/local/hbase/conf/regionservers)

Master
Slave1

我把Master、Slave1均作为RegionServers服务器

把配置好的HBase目录分发到Slave1

把配置好的HBase目录分发到Slave1的同样目录下

cd /usr/local
sudo scp -r hbase/ Slave1:`pwd`

同样把HBase目录的操作权限赋给Slave1上的hadoop用户

sudo chown -R hadoop ./hbase

开启HBase

在开启HBase之前需要先开启Hadoop集群和zookeeper集群

开启Hadoop集群

cd /usr/local/hadoop/sbin
./start-all.sh

开启zookeeper集群(Master和Slave1上均启动)

cd /usr/local/zookeeper-3.4.14/bin/
./zkServer.sh start

再开启HBase集群

cd /usr/local/hbase/bin
./start-hbase.sh

开启HBase集群之后,在Master节点下可以看到如下进程

在这里插入图片描述

在Slave1节点下可以看到如下进程

在这里插入图片描述

如果发生从节点Slave1下不能查看到相应的RegionServers进程的情况,可以查看是不是集群上各机器的时间不同步问题,如果是,可以手动同步集群时间,并再次启动HBase集群。

假如出现主结点Master下不能查看到相应的HMaster进程,可以先关闭hbase,再到zookeeper的集群文件目录下删除/hbase结点的信息(zookeeper的安装目录的bin目录下./zkCli.sh即可进入zookeeper的集群文件目录,rmr /hbase删除其中hbase结点信息)再开启hbase,看是否hbase启动正常

猜你喜欢

转载自blog.csdn.net/atuo200/article/details/105950172