1,下载Zookeeper安装包
2,上传安装包至linux系统的/export/software/:rz
3,解压安装包:tar -zxvf zookeeper-3.4.10.tar.gz -C /export/servers/
二,zookeeper相关配置1,修改zookeeper的配置文件
首先进入到zookeeper解压目录下的conf目录,复制配置文件zoo_sample.cfg,并重命名为zoo.cfg,具体命令如下。
cd zookeeper-3.4.10/ cd conf cp zoo_sample.cfg zoo.cfg
其次,修改配置文件zoo.cfg,分别配置dataDir目录,配置服务器编号与主机名映射关系,设置与主机名连接的心跳端口和选举端口。
vi zoo.cfg dataDir=/export/data/zookeeper/zkdata
#配置zookeeper集群的服务器编号以及对应的主机名,通信端口号(心跳端口号)和选举>端口号
server.1=hadoop01:2888:3888 server.2=hadoop02:2888:3888 server.3=hadoop03:2888:3888
2,创建myid文件
mkdir -p /export//data/zookeeper/zkdata
进入到/export//data/zookeeper/zkdata:cd /export//data/zookeeper/zkdata
创建myid文件:echo 1>myid
myid文件里的内容就是服务器编号(haddoop01服务器对应编号1;haddoop02服务器对应编号2;haddoop03服务器对应编号3)
3,配置环境变量
linux系统目录/etc下的文件profile里面的内容都是与Linux的环境变量相关的。所以一般配置都是在profile文件里面。
vi /etc/profile
将这句代码写到/etc/profile文件最后面
export ZK_HOME=/export/servers/zookeeper-3.4.10 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
4,分发Zookeeper相关文件至其他服务器(选的是绝对路径,任何目录下都可以执行)
将Zookeeper安装目录分发至Hadoop02和Hadoop03服务器上,具体命令如下:
scp -r /export/servers/zookeeper-3.4.10/ hadoop02:/export/servers/ scp -r /export/servers/zookeeper-3.4.10/ hadoop03:/export/servers/将myid文件分发至Hadoop02和Hadoop03服务器上,并且修改myid的文件内容,依次对应服务器号进行设置,分别为2和3,具体命令如下:
scp -r /export/data/zookeeper/ hadoop02:/export/data/ scp -r /export/data/zookeeper/ hadoop03:/export/data/
将profile文件分发至Hadoop02和Hadoop03服务器上,具体命令如下:
scp /etc/profile hadoop02:/etc/profile scp /etc/profile hadoop03:/etc/profile
5,使环境变量生效
source /etc/profile
分别在Hadoop01,Hadoop02,Hadoop03服务器上刷新profile配置文件
三,Zookeeper服务的启动和关闭
1,启动zookeeper服务(三台机器都要)
zkServer.sh start
查看该节点zookeeper的角色
zkServer.sh status
2,关闭服务
zkServer.sh stop
四,可能出现的错误: error contacting service. It is probably not running.解决方法:
1. 查看zoo.cfg文件
查看最后添加的内容,server后面的数字为data目录下myid中的数字,hadoop0,hadoop1,hadoop2为自己的主机名!
vi /export/servers/zookeeper-3.4.10/conf/zoo.cfg
2. 查看data目录中的myid文件
如果myid文件中的数字不和zoo.cfg中的数字对应,也会造成错误!
# vi /export/data/zookeeper/zkdata/myid
3. 查看防火墙是否关闭
# systemctl stop firewalld.service # systemctl disable firewalld.service



