Hadoop系列---【Hadoop集群的搭建---(二)Zookeeper的安装】

(二)Zookeeper的安装

1.准备三台服务器

Hadoop系列---【Hadoop集群的搭建---(二)Zookeeper的安装】_服务器

2.下载安装包

下载地址:http://archive.apache.org/dist/zookeeper/ 这里我们以zookeeper-3.4.9.tar.gz版本为例,下载完后,上传到三台服务器的/app目录下。

3.在第一台服务器上解压到当前目录

tar -zxvf zookeeper-3.4.9.tar.gz

4.修改配置文件

第一台机器修改配置文件

cd /app/zookeeper-3.4.9/conf
cp zoo_sample.cfg.zoo.cfg
cd /app/zookeeper-3.4.9
mkdir zkdatas

vi zoo.cfg

#修改数据保存目录
dataDir=/app/zookeeper-3.4.9/zkdatas
#放开保留多少个快照
autopurge.snapRetainCount=3
#放开日志多少小时清理1次
autopurge.purgeInterval=1

#在末尾加上集群中服务器地址
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888

5.添加myid配置

在第一台机器的/app/zookeeper-3.4.9/zkdatas目录下创建一个名叫myid的文件,内容为1

echo 1 > /app/zookeeper-3.4.9/zkdatas/myid

6.安装包分发到另外两台机器并修改myid的值

#在第一台机器上执行
scp -r /app/zookeeper-3.4.9/ node02:/app/
scp -r /app/zookeeper-3.4.9/ node03:/app/

#在第二台机器上执行
echo 2 > /app/zookeeper-3.4.9/zkdatas/myid

#在第三台机器上执行
echo 3 > /app/zookeeper-3.4.9/zkdatas/myid

7.依次在三台机器上启动zk服务

leader和启动的顺序有关,算法为:第一个启动投自己一票,第二个启动投第二个一票,因为一共三台,已经过半,这时候比较myid,myid大的就是leader,因此,一般第二台为leader。
/app/zookeeper-3.4.9/bin目录下执行zkServer.sh脚本

#zk启动命令
sh zkServer.sh start

#查看启动状态
jps
sh zkServer.sh status

Hadoop系列---【Hadoop集群的搭建---(二)Zookeeper的安装】_服务器_02

8.常见问题

#我报的错java.net.NoRouteToHostException: 没有到主机的路由,这是因为虚拟机之间的防火墙没有关闭导致的。
#解决方案
systemctl stop firewalld
systemctl disable firewalld.service

愿你走出半生,归来仍是少年!