简介
Zookeeper是一个高可用的分布式数据管理和协调框架,并且能够很好的保证分布式环境中数据的一致性。在越来越多的分布式系统(Hadoop、HBase、Kafka)中,Zookeeper都作为核心组件使用
安装
环境准备
在本机通过VMware 安装三台虚拟机centos系统,并分别设置固定IP
机器名 | IP |
ding | 192.168.80.110 |
pei | 192.168.80.111 |
qiang | 192.168.80.112 |
同时将三台虚拟机安装jdk环境
三台机器都创建 dingpq用户,并归属root群组
下载zookeeper
点击 download
页面跳转后,继续点击 Download
页面跳转后,继续点击
选择 zookeeper-3.4.14
点击 下载
上传到 三台主机 dingpq 用户的home目录中
这里我在home目录中 新建了文件夹 software 用于软件的安装目录
zookeeper解压与环境配置
这里 –C 是用于指定 解压的目录
解压完成后,进入解压后的zookeeper目录中的conf文件夹中,
在conf中新建一个 zoo.cfg文件,并编辑zoo.cfg文件
上面的配置存在问题,记住 等于号后面不要又空格,不然会又奇怪的报错
这里
tickTime =2000 #心跳间隔
dataDir =/home/dingpq/software/zookeeper-3.4.14/data #本地保存数据的目录
logDir =/home/dingpq/software/zookeeper-3.4.14/log #日志目录
clientPort =2181 #客户端默认端口号
initLimit =5 # 初始容忍的心跳数
syncLimit =2 #等待最大容忍的心跳数
#这里注意一定要按照 1 2 3 递增
server.1=192.168.80.110:2888:3888 # (主机名, 心跳端口、数据端口)
server.2=192.168.80.111:2888:3888
server.3=192.168.80.112:2888:3888
这里 data 和 log 目录 我们自己手动新增
在data目录中新建一个文件 myid ,并编辑myid文件,写入一个 1,这里注意 三台主机依次填写 1 2 3
以上三台主机的操作,除了myid不一样 ,其他都一样
启动和关闭zookeeper服务端
启动验证,输入jps 查看进程是否存在
启动和关闭 zookeeper 客户端
关闭 quit
如果不想切换到zookeeper的bin目录中执行命令,可以配置环境变量
注意: zookeeper 少于三台不会正常工作
下面是单台192.168.80.110启动时
三台都启动后,再查看
至此zookeeper 集群全部启动完成,用户可以通过java的api往里面写数据,注入分布式应用让zookeeper 协调数据。或者使用zkCli.sh 来测试 其中一台写入,其他两台获取
zkCli.sh 客户端写入测试
在三台主机上 执行 zkCli.sh 启动客户端
在 192.168.80.110主机 zookeeper 客户端 在 /dingpq路径节点写入 aaaa
在 192.168.80.111主机 zookeeper 客户端 在 /dingpq路径节点获取
在 192.168.80.112主机 zookeeper 客户端 在 /dingpq路径节点获取
一键启动一键关闭
远程ssh 启动zookeeper
启动脚本zkStart.sh
#!/bin/bash
echo "start zkServer..."
for i in ding pei qiang
do
ssh $i "source /etc/profile;/home/dingpq/software/zookeeper-3.4.14/bin/zkServer.sh start"
done
关闭脚本zkStop.sh
#!/bin/bash
echo "stop zkServer..."
for i in ding pei qiang
do
ssh $i "source /etc/profile;/home/dingpq/software/zookeeper-3.4.14/bin/zkServer.sh stop"
done