前言
上篇内容关于hadoop集群的部署,只是用于测试,并没有做高可用的配置,在生产环境中,通常会启用高可用模式,除了会配置多个namenode节点外,还会用到zookeeper,来保证在namenode节点出现损坏的情况下,能够自动主备切换,保持集群环境的正常运行使用。
一、zookeeper是什么?
zookeeper是一种分布式协调服务管理工具,一般采用奇数个节点来部署服务,由leader和foller的角色构成,在leader无法访问的情况下,zookeeper会重新进行选举,生成新的leader,每个节点的server都会保存一份相同的数据,所以在进行重新选举后,数据都是一致的,当前有许多组件都依赖于zookeeper,例如后面将会提到的kafka、dolphinscheduler等等。
二、准备步骤
1.下载安装包
登录zookeeper官网地址https://zookeeper.apache.org/releases.html#download
选择版本下载,我这边是之前下载的3.7版本,读者可根据自身需求自行选择版本,下载完成后,执行以下命令解压
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
2.配置环境变量
vim /etc/profile.d/my_env.sh,编辑以下内容到环境变量中
export ZOOKEEPER_HOME=/application/soft/zookeeper-3.7.1
export PATH=$PATH:$ZOOKEEPER_HOME/bin
文件保存后,执行source /etc/profile命令,使环境变量生效。
3.创建节点id
zookeeper是根据id值来判断属于哪个节点,以及同步数据之类的操作,所以需要指定一个目录来保存zookeeper数据,默认情况下是保存在/tmp目录下,但tmp目录空间小,容易被清理,所以我这边在zookeeper安装目录下创建了zkData(mkdir -p zkData)文件,用以保存zookeeper数据,进入到zkData目录,vim myid创建并编辑文件内容为1,我这边有三台服务器,所以另外两个节点的myid分别为2和3
4.修改配置文件
vim $ZOOKEEPER_HOME/conf/zoo.cfg,打开并编辑zookeeper配置文件,添加以下内容
注:以下内容中的server.1、2、3要和刚才编辑的myid值一致
dataDir=/application/soft/zookeeper-3.7.1/zkData
server.1=cdp1:2888:3888
server.2=cdp2:2888:3888
server.3=cdp3:2888:3888
zoo.cfg文件配置三个节点需保持一致
5.启动zookeeper服务
进入zookeeper安装目录,执行以下命令启动zookeeper服务,看到started字样,说明启动完成
注:三个节点都需要执行以下命令,以启动zookeeper集群
bin/zkServer.sh start
执行以下命令检查zookeeper状态
bin/zkServer.sh status
可看出每个节点所属的角色。

总结
至此,zookeeper集群就已经安装部署完成,zookeeper本人用到的场景最多的就是一些注册服务,可登录zookeeper客户端(zkCli.sh),对节点的数据进行一些操作,由于篇幅有限,具体使用细节就不在这里展开,后续会结合案例详细讲解,文章编写的仓促,如果不完善的地方,希望大家多多包涵。