一、前提:
(1)Hbase服务,是基于zookeeper的,虽然本身自带,但是在这里我们并不使用自带的,而是单独部署。
(2)Hbase使用稳定版本:hbase-1.3.1-bin.tar.gz;
(3)可在master上安装后,scp到其他slave机器上。
二、配置Hbase:
首先要注意在生产环境中目录结构要定义好,防止在项目过多的时候找不到所需的项目
- 目录统一放在/home下面 ,首先创建hbase项目目录
cd /home
#创建项目目录
mkdir hbase
cd /home/hbase
- 将 hbase-1.3.1-bin.tar.gz 放在 /home/hbase下,并解压缩,解压缩完成后可删除安装包:
#解压缩
tar -zxvf hbase-1.3.1-bin.tar.gz
#完成后可删除
rm -f hbase-1.3.1-bin.tar.gz
- 修改配置文件
(1)环境变量配置:
为方便以后操作,在/etc/profile文件中主要增加的内容是:
export HADOOP_HOME=/home/hadoop/hadoop-2.9.0
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
export ZK_HOME=/home/zookeeper/zookeeper-3.4.10
export HBASE_HOME=/home/hbase/hbase-1.3.1
PATH中增加:
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${HBASE_HOME}:${ZK_HOME}/bin:$PATH
执行命令生效
source /etc/profile
(2)修改 hbase-env.sh:
在 /home/hbase/hbase-1.3.1/conf/hbase-env.sh 中找到配置文件注释的这行# export JAVA_HOME=/usr/java/jdk1.6.0/,在下面添加jdk环境变量:
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
(3)修改配置文件hbase-site.xml:
<configuration>
<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.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2,slave3</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/zookeeper/zkdata</value>
</property>
</configuration>
(4) 修改regionservers文件:
和与hadoop的slave文件相同
添加hadoop slave中的数据节点信息:
slave1
slave2
slave3
(5) 因为Hadoop和Hbase都调用slf4j-log4j,且都存在这个jar包。因此,删掉其中一个,避免冲突:
cd /home/hbase/hbase-1.3.1/lib/
rm -f slf4j-log4j12-1.7.5.jar
(6) 将安装配置好的hbase目录复制到所有slave节点中:
scp -r /home/hbase/ root@slave1:/home/
scp /etc/profile root@slave1:/etc/
scp -r /home/hbase/ root@slave2:/home/
scp /etc/profile root@slave2:/etc/
scp -r /home/hbase/ root@slave3:/home/
scp /etc/profile root@slave3:/etc/
说明:各slave节点,环境变量配置完后,要执行source /etc/profile才能生效。
(7)关闭所有节点的防火墙,防止hbase访问失败。
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service
#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state
#停止iptables
service iptables stop
#禁止iptables 开机启动
chkconfig iptables off
三、启动Hbase:
启动的顺序一般是hadoop -> zookeeper -> hbase,停止顺序相反!
hbase只在master机器上启动就可以!
- 启动hbase集群,命令如下:
cd /home/hbase/hbase-1.3.1/bin/
./start-hbase.sh
- 执行hbsae shell命令,进入hbase控制台:
[root@master bin]# hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.3.1, r930b9a55528fe45d8edce7af42fef2d35e77677a, Thu Apr 6 19:36:54 PDT 2017
hbase(main):001:0>
- 输入list命令,如果正常执行,表示hbase启动成功:
hbase(main):001:0> list
TABLE
0 row(s) in 0.4390 seconds
至此,Hbase集群搭建完成