Zookeeper的集群搭建与配置(二)
ZooKeeper的集群搭建与配置(二)
ZooKeeper 软件安装须知
鉴于 ZooKeeper 本身的特点,服务器集群的节点数推荐设置为奇数台。我这里我规划为三台, 分别为 hadoop01,hadoop02,hadoop03
下载地址:http://mirrors.hust.edu.cn/apache/ZooKeeper/
我使用的版本号3.4.10
一:上传并解压安装包
解压安装包 到 /home/hadoop/apps/ 路径下 tar -zxvf zookeeper-3.4.10.tar.gz -C /home/hadoop/apps/
二:配置环境变量
(PS:默认jdk都安装正常,已配置)
修改命令:vi /etc/profile 配置zookeeper变量,完成后记得 source /etc/profile
三:修改zookeeper配置(ps:这个是关键哦)
3.1 切换到zookeeper的conf 目录下
3.2 修改配置文件 mv zoo_sample.cfg zoo.cfg 修改zoo_sample.cfg 为zoo.cfg
3.3 修改zoo.cfg : vi zoo.cfg
初始文件内容如下
3.3.1 更改节点id文件存储路径
dataDir=/home/hadoop/data/zookeeperdata
3.3.2 添加serverId
#有几个节点 追加几行 追加标准:server.id(每个节点的唯一编号 从1开始) = 主机名:心跳端口2888:选举端口3888
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
(PS:serverId的值范围为1-255 即zookeeper集群最多可配置255个节点)
四:同步配置集群各节点操作
将配置好的zookeeper发送至另外两个节点
scp -r /home/hadoop/apps/zookeeper-3.4.10 hadoop02:/home/hadoop/apps/
scp -r /home/hadoop/apps/zookeeper-3.4.10 hadoop03:/home/hadoop/apps/
将 /etc/profile发送至另外两个节点(可以单独去修改各节点的profile文件,配置好zookeeper_home 变量即可)
sudo scp /etc/profile hadoop02:/etc/
sudo scp /etc/profile hadoop02:/etc/
生效各个节点的/etc/profile文件 source /etc/profile
五.配置myid文件
zoo.cfg文件中已经配置好文件存储目录 dataDir=/home/hadoop/data/zookeeperdata
三台节点新建/home/hadoop/data/zookeeperdata并在该目录下新建myid文件(文件名必须叫myid,在源码中有指定),根据zoo.cfg文件中配置的server.id 来指定各节点myid文件的id值
将hadoop01设置的节点id为1 , hadoop02设置的节点id为2 , hadoop03设置的节点id为3
myid配置有误,一般会出现这个错误
Caused by: java.lang.IllegalArgumentException: /home/hadoop/data/zookeeperdata/myid file is missing
六.启动zookeeper集群
启动命令 zkServer.sh start
启动过程中会
1.加载zoo.cfg文件
dataDir=/home/hadoop/data/zookeeperdata
2.找myid文件
作用:
1)区分不同的节点
2)投票,选主
当集群节点启动数不超过一半的时候(这个是zookeeper的选主机制决定的),查看状态zkServer.sh status
zookeeper的启动机制要集群节点启动数必须超过一半,超过半数后,查看状态zkServer.sh status
此时zookeeper的启动算是OK了。