HBase集群部署安装
在安装HBase之前,一定需要考虑HBase=和Hadoop之间版本的兼容性。由于之前已经安装的是Hadoop3.1.3版本,进入HBase官网Apache HBase ™ Reference Guide查看兼容性,具体兼容表格如下图所示:
从上图可得知,Hadoop3.1.1+版本可搭配HBase2.1.x版本与HBase2.2.x版本,教程挑选的HBase版本为HBase2.2.2,具体安装步骤如下。
HBase中有两个角色,一个是Hmaster,是Hbase集群的管理节点,HRegionServer,主要负责存储数据节点,本次案例的集群配置如下表所示。
集群节点 | HMaster | HRegionServer |
---|---|---|
master | √ | √ |
slaves1 | √ | |
slaves2 | √ |
Hadoop部署
HBase将数据存储在HDFS上,因此部署HBase前需要把Hadoop部署上,具体部署操作参考Hadoop部署文档。Hadoop完全分布式部署
Zookeeper集群部署
Hbase需要Zookeeper工具存储元数据信息,因此部署HBase前,需要把ZK集群部署上,具体部署操作参考Zookeeper部署文档。Zookeeper集群安装部署
HBase集群部署
-
访问HBase官网下载安装文件hbase-2.2.2-bin.tar.gz文件:https://archive.apache.org/dist/hbase/2.2.2/。
-
使用XFTP工具上传HBase安装包到master节点的/root/module目录下。
-
解压Hbase安装包到/usr/local目录下,并修改安装目录名称
cd /root/module tar -zxvf hbase-2.2.2-bin.tar.gz -C /usr/local/ sudo mv /usr/local/hbase-2.2.2 /usr/local/hbase
-
配置环境变量,将Hbase路径配置到/etc/profile文件中。
vim /etc/profile
在/etc/profile尾部添加HBASE_HOME变量,并把HBase的bin目录追加到PATH中,如下图所示。
export HBASE_HOME=/usr/local/hbase export PATH=$PATH:$HBASE_HOME/bin
-
重新加载环境变量
source /etc/profile
-
设置配置文件
Hbase所有的配置文件,在Hbase的conf目录下。cd /usr/local/hbase/conf
① 配置hbase-site.xml文件,编辑hbase-site.xml文件,在
<configuration>
标签之间添加以下内容<configuration> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.tmp.dir</name> <value>/usr/local/hbase/datta/tmp</value> </property> <property> <name>zookeeper.znode.parent</name> <value>/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/opt/data/zookeeper/zkdata</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master:2181,slaves1:2181,slaves2:2181</value> </property> <property> <name>hbase.wal.provider</name> <value>filesystem</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>
②配置regionservers,在regionservers处,添加Region Server节点。
master slaves1 slaves2
③配置hbase-env.sh,在文件开头添加以下内容。
HBASE_MANAGES_ZK如果为true时,使用Hbase内置的ZK工具,为false时,则使用外置的ZK。
export HBASE_MANAGES_ZK=false export JAVA_HOME=/usr/local/jdk1.8
-
配置完成后,分发hbase目录到slaves1和slaves2节点。
scp -r /usr/local/hbase root@slaves1:/usr/local scp -r /usr/local/hbase root@slaves2:/usr/local scp -r /etc/profile root@slaves1:/etc scp -r /etc/profile root@slaves2:/etc
-
启动集群
① 启动Hadoop,在master节点运行以下指令启动Hadoop集群。
start-all.sh
② 启动Zookeeper,在三个节点运行以下指令启动Zookeeper集群。
zkServer.sh start
③ 启动HBase集群,在master节点运行以下指令启动HBase集群。
start-hbase.sh
在各节点使用jps指令查看各个进程运行情况。
-
测试HBase集群。
使用
hbase shell
指令,进入到hbase命令行模式。hbase shell
创建命名空间
school_ns
create_namespace 'school_ns'
查看命名空间
list_namespace
删除命名空间
drop_namespace 'school_ns'
查看命名空间
list_namespace
退出
exit
-
Hbase提供了Web管理界面,浏览器打开http://master:16010 即可访问
-
关闭集群
在master节点运行以下指令,关闭hbase集群。
stop-hbase.sh
在三台机器节点运行以下指令,关闭ZK集群
zkServer.sh stop
在master节点运行以下指令,关闭hadoop集群
stop-all.sh
-
关闭集群
在master节点运行以下指令,关闭hbase集群。
stop-hbase.sh
在三台机器节点运行以下指令,关闭ZK集群
zkServer.sh stop
在master节点运行以下指令,关闭hadoop集群
stop-all.sh