Hbase使用独立的zookeeper,不使用内置zookepper
安装zookeeper
下载zookeeper
下载地址 https://dlcdn.apache.org/zookeeper/
将下载的内容复制到服务器中并解压,我的服务器安装包在/opt/firma/下,安装的内容在/opt/app/下
tar -zxvf apache-zookeeper-3.7.2-bin.tar.gz -C ../app/
复制zookeeper配置文件并修改名称
[root@test app] cd /opt/app/apache-zookeeper-3.7.2-bin/conf/
[root@test conf] cp ./zoo_sample.cfg ./zoo.cfg
新建两个文件夹
mkdir zk_data
mkdir zk_logs
编辑配置文件
vim zoo.cfg
修改环境变量,增加配置
# 配置环境变量
vim /etc/profile
#增加配置
export ZOOKEEPER_HOME=/opt/app/apache-zookeeper-3.7.2-bin #存放位置可以更改
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#使配置生效
source /etc/profile
进入/bin目录,启动zookeeper
[root@test bin]# ./zkServer.sh start
是否启动成功(jps查看 有QuorumPeerMain则表示成功)
[root@test bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/app/apache-zookeeper-3.7.2-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@test bin]# jps
3507 QuorumPeerMain
1751 NameNode
3543 Jps
1871 DataNode
2063 SecondaryNameNode
Hbase配置zookeeper
更改hbase-env.sh文件
[root@test app]# vi ./hbase-2.5.8/conf/hbase-env.sh
#配置Hbase是否使用内置的zookeeper
export HBASE_MANAGES_ZK=false
更改
vi ./hbase-2.5.8/conf/hbase-site.xml
#对应的配置
<configuration>
<!-- false是单机模式,true是分布式模式。-->
<!-- 分布式是指hbase和zookeeper运行在不同的jvm,即hbase用外部的zookeeper -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- hbase存放的位置,一般hbase数据存在hdfs,这里的hdfs可以是单机版的-->
<property>
<name>hbase.rootdir</name>
<!-- 这里的hdfs地址要跟hadoop > core > sitehdfs地址一致 -->
<value>hdfs://test:8020/hbase</value>
</property>
<!-- 不加这个启动start-hbase.sh会报错 -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<!-- zk主机地址和端口采用默认的,不用配置 -->
<!-- 默认会根据regionserver文件去找,默认是localhost:2181-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>test:2181</value>
</property>
</configuration>
然后启动Hbase
# 启动Habse
[root@test app]# ./hbase-2.5.8/bin/start-hbase.sh
running master, logging to /opt/app/hbase-2.5.8/logs/hbase-root-master-test.out
: running regionserver, logging to /opt/app/hbase-2.5.8/logs/hbase-root-regionserver-test.out
# 查看是否启动成功
[root@test app]# jps
4416 Jps
3507 QuorumPeerMain
4036 HRegionServer
1751 NameNode
3912 HMaster
1871 DataNode
2063 SecondaryNameNode
# 测试是否正常运行
[root@test app]# hbase shell
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.5.8, r37444de6531b1bdabf2e445c83d0268ab1a6f919, Thu Feb 29 15:37:32 PST 2024
Took 0.0136 seconds
# 查询所有的表
hbase:001:0> list
TABLE
0 row(s)
Took 0.6421 seconds
=> []
结语:因为我在SpringBoot项目集成Hbase时,使用内置的zookeepers时存在连接不上zookeeper的情况,所以我单独部署了zookeeper,替换之后连接没有问题