HBase是基于zookeeper和hadoop的。
所以在安装HBase前需要安装zookeeper和hadoop。之前已安装过hadoop。
安装zookeeper
下载地址为:
http://archive.cloudera.com/cdh5/cdh/5/
我的hadoop是2.8版本,下载的zookeeper是3.4.10版本
下载后解压到虚拟机中。
修改配置文件
创建zk数据存放目录
mkdir -p /home/tyler/apps/zookeeper-3.4.14/zkdatas
修改zk配置文件
cd /home/tyler/apps/zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改如下:
dataDir=/home/tyler/apps/zookeeper-3.4.14/zkdatas
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
server.1=Tyler01:2888:3888 #后三行是加到最后
server.2= Tyler02:2888:3888
server.3= Tyler03:2888:3888
创建myid文件并写入内容
echo 1 > /home/tyler/apps/zookeeper-3.4.14/zkdatas/myid
将安装包分发到其他机器
node01执行以下命令
cd /export/servers
scp -r zookeeper-3.4.5-cdh5.14.0/ node02:$PWD
scp -r zookeeper-3.4.5-cdh5.14.0/ node03:$PWD
node02修改
只需要改myid文件即可。
echo 2 > /home/tyler/apps/zookeeper-3.4.14/zkdatas/myid
node03修改
同上
echo 3 > /home/tyler/apps/zookeeper-3.4.14/zkdatas/myid
启动zk服务
三台服务器启动zookeeper,三台机器都执行以下命令启动zookeeper
/home/tyler/apps/zookeeper-3.4.14/bin/zkServer.sh status
结果
另外两台的结果是一样的
这样zookeeper就安装完成!
接下来安装HBase。
我安装的HBase是1.3.1版本。
解压到指定目录
修改配置文件
第一台机器进行修改配置文件
cd /home/tyler/apps/hbase-1.3.1/conf
修改第一个配置文件hbase-env.sh
注释掉HBase使用内部zk
vim hbase-env.sh
修改如下:
export JAVA_HOME= /home/tyler/apps/jdk1.8.0_181
export HBASE_MANAGES_ZK=false
修改第二个配置文件hbase-site.xml
vim hbase-site.xml
删除最后两行,添加以下内容。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Tyler01:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>Tyler01:2181,Tyler02:2181,Tyler03:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/tyler/apps/zookeeper-3.4.14/zkdatas</value>
</property>
</configuration>
修改第三个配置文件regionservers
vim regionservers
添加如下:
Tyler01
Tyler02
Tyler03
创建back-masters配置文件,实现HMaster的高可用
cd /home/tyler/apps/hbase-1.3.1
vim backup-masters
写入如下:
Tyler02
安装包分发到其他机器
因为hbase需要读取hadoop的core-site.xml以及hdfs-site.xml当中的配置文件信息,所以我们三台机器都要执行以下命令创建软连接
ln -s /home/tyler/apps/hadoop-2.8.0/etc/hadoop/core-site.xml /home/tyler/apps/hbase-1.3.1/conf/core-site.xml
ln -s /home/tyler/apps/hadoop-2.8.0/etc/hadoop/hdfs-site.xml /home/tyler/apps/hbase-1.3.1/conf/hdfs-site.xml
三台机器添加HBASE_HOME的环境变量
vim /etc/profile
export HBASE_HOME=/home/tyler/apps/hbase-1.3.1
export PATH=:
PATH
### HBase集群启动
第一台机器执行以下命令进行启动
cd /home/tyler/apps/hbase-1.3.1
bin/start-hbase.sh
我们也可以执行以下命令单节点进行启动
启动HMaster命令
bin/hbase-daemon.sh start master
启动HRegionServer命令
bin/hbase-daemon.sh start regionserver
为了解决HMaster单点故障问题,我们可以在node02和node03机器上面都可以启动HMaster节点的进程,以实现HMaster的高可用
bin/hbase-daemon.sh start master
页面访问
**浏览器页面访问
http://192.168.72.110:16010/master-status
小技巧:
启动Hbase,bin/start-hbase.sh
启动顺序:hadoop–>zookeeper–>hbase
在hadoop0上启动hadoop集群:
/home/hadoop/hadoop-2.6.0/sbin/start-all.sh
在每一台机器上启动zookeeper:
/home/hadoop/zookeeper-3.4.6/bin/zkServer.sh start
在hadoop0上启动hbase集群:
/home/tyler/apps/hbase-1.3.1/bin/start-hbase.sh
此时jps查看到各个进程均已经启动,http://hadoop0:16010/master-status可以查看hbase状态,运行hbase shell的list命令,工作正常,问题解决。