hbase更新换代,已经不需要配置zookeeper,已有内置zookeeper供使用者使用。但内置zookeeper往往容易出错且不好修复,因此我将介绍两种方法1、使用内置zookeeper2、额外配置zookeeper
一、使用内置zookeeper
1.解压安装包
tar -zxvf hbase-2.4.8
2.配置文件
以下配置文件均存放在
cd hbase-2.4.8/conf/
hbase.env.sh
export JAVA_HOME=/home/H21/jdk1.8.0_131
export HBASE_CLASSPATH=/home/H21/hadoop-3.1.3/etc/hadoop
请各位自行修改路径(分别为jdk和hadoop的路径)
可以增加一项配置
export HBASE_MANAGES_ZK=true
该项配置表明启动hbase试用其默认的内置zookeeper,若不适用请改为false
hbase-site.xml
添加如下配置
添加在<configuration>和</configuration>之间
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://westgisB082:8020/hbase</value>
</property>
<!-- 指定zookeeper的地址,多个用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>westgisB082,westgisb083,westgisB084,westgisB085,westgisB086:2181</value>
</property>
<!--指定hbase管理页面-->
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
请根据自己的实际情况更改地址
regionservers
--从节点主机名或IP地址
10.103.105.83
10.103.105.84
10.103.105.85
10.103.105.86
3.配置环境变量
vi .bashrc
添加如下内容
#HBASE
export HBASE_HOME=/home/H21/hbase-2.4.8
export PATH=$PATH:$HBASE_HOME/bin
并source
4.传送文件至从节点
scp -r hbase-2.4.8 H21@10.103.105.83:/home/H21
传至每个从节点,此处也可使用脚本,后续会有讲述脚本的使用方法
5.启动
先启动hdfs再启动hbase
$HADOOP_HOME/sbin/start-dfs.sh
$HBASE_HOME/bin/start-hbase.sh
查看hbase监控界面,如下图所示
输入
hbase shell
进入hbase并尝试建表
create 'mytable','info'
出现如下图所示的界面即为正确
二、额外配置zookeeper
1.下载并解压安装包
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
为了方便我们重命名
mv apache-zookeeper-3.7.1-bin.tar.g zookeeper
重命名后可以根据自己的需求删除apache-zookeeper-3.7.1-bin
2.配置
创建文件夹
在zookeeper目录下
mkdir data
mkdir logs
修改配置文件
在zookeeper/conf目录下
cp zoo_sample.cfg zoo.cfg
重命名
然后进入zoo.cfg
将其中配置改为
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/H21/zookeeper/data
dataLogDir=/home/H21/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
server.0=10.103.105.82:2888:3888
server.1=10.103.105.83:2888:3888
server.2=10.103.105.84:2888:3888
server.3=10.103.105.85:2888:3888
server.4=10.103.105.86:2888:3888
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
配置myid
cd zookeeper
cd data
vi myid
将82中myid中的内容改为0,83节点改为1,以此类推,一定要每个节点都对应。
拷贝至从节点
以上配置从节点应完全一致,尤其注意myid中的数据是否与节点一一对应!
3.配置环境变量并检验zookeeper
在.bashrc中添加如下内容
export PATH=$PATH:/home/H21/zookeeper/bin
并source
在每个节点上都启动zookeeper检验
#在zookeeper/bin下执行
./zkServer.sh start
运行结果如下即成功!
4.启动hbase
在启动之前,我们需要修改hbase中hbase-env.sh中
export HBASE_MANAGES_ZK=false
修改原因前文已提到,此处不再赘述
(记得发给从节点
!!!在启动hbase前请先在每个节点都启动zookeeper
然后再启动hbase,检查监控界面,以及进入hbase shell检验
5.报错小结
如在使用内置zookeeper出现如下报错
建议自己配置一个zookeeper使用,也就是第二种配置
若是第二种配置仍出现该错误,请根据以下步骤处理
1.关闭hbase
2.执行
hdfs dfs -rm -r /hbase
3.进入zookeeper/bin执行
zkCli.sh -server localhost:2181
进入zookeeper
4.执行
deleteall /hbase
5.重启即可