zookeeper从3.4.8升级到3.4.14

升级背景说明

最近在做系统安全扫描时,扫出来zookeeper存在安全漏洞

Apache Zookeeper 缓冲区溢出漏洞(CVE-2016-5017)

官方给出的升级建议

地址:https://zookeeper.apache.org/security.html#CVE-2016-5017

Mitigation: It is important to use the fully featured/supported Java cli shell rather than the C cli shell independent of version.

  • ZooKeeper 3.4.x users should upgrade to 3.4.9 or apply this patch

  • ZooKeeper 3.5.x users should upgrade to 3.5.3 when released or apply this patch

即:升级到较高版本或者打补丁。由于当前环境中使用的版本是3.4.8.所以,将zk升级到3.4版本当前的最新版本。3.4.14

环境说明

  当前运行的zookeeper版本:3.4.8

升级过程

总:本次升级采用的是,新旧版本配置相同,不不使用旧节点的数据,关闭旧节点,启动新节点,新节点启动之后,自动同步数据。

1.下载zookeeper 3.4最新的版本3.4.14

下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

2.将软件上传到zookeeper所在的服务器

3.解压缩

tar -C ../app/ -zxf zookeeper-3.4.14.tar.gz 

4.增加配置文件,创建数据目录,创建id文件

cp zookeeper-3.4.8/conf/zoo.cfg zookeeper-3.4.14/conf/
mkdir zookeeper-3.4.14/data
cp zookeeper-3.4.8/data/myid zookeeper-3.4.14/data/

备注:直接将原来zk版本中的配置文件拷贝到新版本目录下,同时,id文件必须要拷贝。

5.修改zoo.cfg配置文件中的dataDir配置,变更为新版本的data目录

[aiprd@host-10-124-163-135 app]$ grep dataDir zookeeper-3.4.14/conf/zoo.cfg 
dataDir=/mnt/aiprd/app/zookeeper-3.4.14/data
# The number of snapshots to retain in dataDir

备注:修改为新版本的data目录

6.关闭旧节点,启动新节点,并查看节点的状态

zookeeper-3.4.8/bin/zkServer.sh stop
zookeeper-3.4.14/bin/zkServer.sh start
[aiprd@host-10-124-163-135 app]$ zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /mnt/aiprd/app/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower

备注:节点已经启动成功,可以通过zkCli.sh脚本查看其中的配置

zookeeper-3.4.14/bin/zkCli.sh -server 10.124.163.135:2181
#查看其中注册的regionserver的信息。已经有数据,说明升级成功。
[zk: 10.124.163.135:2181(CONNECTED) 15] ls /hbase/rs        
[host-10-124-163-134,16020,1562122185977, host-10-124-163-135,16020,1562122203415, host-10-124-163-136,16020,1562122183160]

7.通过滚动升级的方式,将其他的节点进行升级,升级的过程中,如果是leader,关闭之后,则会自动重新选举出新的leader

8.同样,可以通过hbase-hmaster的监控查看使用的zk的版本的信息

http://10.124.163.134:16010/master-status

 

备注:经过查看,hbase使用的zookeeper的版本是3.4.14.并且有连接,本次升级成功。

 

另外:如果升级失败,将原有版本启动,关闭新版本即可,因为zookeeper是集群模式,因此,对于生产,也是可以滚动升级的。

 

文档创建时间:2019年8月13日16:47:48

posted @ 2019-08-13 16:51  Zhai_David  阅读(5205)  评论(0编辑  收藏  举报