1.1 Zookeeper概述
zookeeper是一个分布式协调服务的开源框架,主要用来解决集群中应用系统的一致性问题。
zookeeper本质上是一个分布式的小文件系统存储,部署在多台服务器上。
1.2 zookeeper 特性
全局数据一致:集群中每个服务器保存一份相同的数据副本,客户端无论连接到那个服务器读取数据都是相同的。
1.3 角色
Leader: master 领导者、管理者 处理事务形操作(增、删、改)
Follower:Slave 服从者、工作者 处理非事务操作(查询)转发事务形操作给leader 参与选举
Observer 观察者 处理非事务操作(查询) 转发事务形操作给leader
LookIng 竞选状态
1.4 搭建集群
安装前请检查jdk有没有安装好,没有安装先安装jdk,没有压缩包可以在最下面的网址里面下载jdk和zookeeper压缩包
1.4.1 搭建前期准备
- 检测集群时间是否同步
- 检测防火墙是否关闭
- 检测主机与IP有没有映射
1.4.2 下载安装包,解压
tar -zxvf zookeeper-3.4.5.tar.gz
mv zookeeper-3.4.5 zookeeper
1.4.3 修改环境变量(注意:3台zookeeper都需要修改)
vi /etc/profile.d/zookeeper.sh
添加以下代码
export ZOOKEEPER_HOME=/home/hadoop/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile------刷新配置
1.4.4 修改zookeeper配置文件
进入 cd zookeeper/conf 目录下,使用 cp zoo_sample.cfg zoo.cfg 复制文件
将复制来的文件进行修改 vi zoo.cfg
添加内容:
修改:
dataDir=/root/apps/zookeeper/zkdata
添加:
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
创建文件夹:
cd /home/hadoop/zookeeper/
mkdir zkdata
在data文件夹下新建myid文件,myid的文件内容为:
cd zkdata
echo 1 > myid
1.4.5 分发安装包到其他机器
scp -r /root/apps root@node02:/root/
scp -r /root/apps root@node03:/root/
1.4.6 修改其他机器的配置文件
修改myid文件
到node02上:修改myid为:2
到node03上:修改myid为:3
1.4.7 启动 (zookeeper是单独启动,不是一键启动)
zkServer.sh start (单独启动)
zkServer.sh stop(单独关闭)
编写一个脚本来批量启动所有机器:
for host in node01 node02 node03
do
ssh $host "source /etc/profile;/export/servers/zookeeper/bin/zkServer.sh start"
done
#上面是启动的,关闭的只用将start修改为stop,脚本编写完毕保存退出后,记得将脚本权限该为可以执行的脚本
代码:(chmod 755 脚本名)
查看集群状态
jps(查看进程)
zkServer.sh status(查看集群状态,主从信息)
如果启动不成功,可以观察zookeeper.out日志,查看错误信息进行排查
链接:https://pan.baidu.com/s/1p61QrtqdES8OjVGU03lX3g
提取码:zxcv