1. 官方下载地址
zookeeper.apache.org/releases.ht…
2. 安装配置ZooKeeper集群
下载稳定的ZooKeeper版本后,将其解压缩并CD到Zookeeper根目录
tar -zxvf 待解压压缩包 -C 指定解压目录
建立软链接 ln -s 源地址 目标地址
将Zookeeper传输到指定服务器 129/130/131
scp -r ./Zookeeper/ root@192.168.248.129-130-131:/opt/modules/Zookeeper/
要启动ZooKeeper,需要一个配置文件。在conf/zoo.cfg中创建它:
tickTime=2000
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/zookeeper/log
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.248.129:2888:3888
server.2=192.168.248.130:2888:3888
server.3=192.168.248.131:2888:3888
这个文件可以叫任何东西,但是为了讨论方便,将其命名为conf / zoo.cfg。更改dataDir的值以指定现有(空)目录。 以下是每个字段的含义:
tickTime ZooKeeper使用的基本时间单位(毫秒)。它用于做心跳,最小会话超时将是tickTime的两倍。
dataDir 除非另有说明,否则存储内存中数据库快照的位置以及数据库更新的事务日志。
clientPort 侦听客户端连接的端口
initLimit 超时限制quorum中的ZooKeeper服务器初始化时必须连接到Leader的时间长度。
syncLimit 超时限制quorum中Follower与Leader之间通信过时的时间。 对于这两个超时,使用tickTime指定时间单位。在此示例中,initLimit的超时是5滴答声,即2000毫秒为1滴答声,即10秒钟。
server.X 的配置列出了组成ZooKeeper服务的服务器。服务器启动时,可以通过在数据目录中查找文件myid来知道服务器所在的服务器。myid文件需要自行创建。
echo 1/2/3 /var/lib/zookeeper/myid
最后,记下每个服务器名称后的两个端口号:2888 和 3888。对等方使用前一个端口连接到其他对等方。这种连接是必需的,以便对等方可以进行通信,例如,以商定更新顺序。更具体地说,ZooKeeper 服务器使用此端口将 Follower 连接到 Leader。当出现新的 Leader 时,Follower 使用此端口打开与 Leader 的 TCP 连接。由于默认的Leader 选举也使用 TCP,因此我们当前需要另一个端口进行 Leader 选举。这是服务器条目中的第二个端口。
其他优化 为了获得较低的更新延迟,拥有专用的事务日志目录非常重要。默认情况下,事务日志与数据快照和 myid 文件放在同一目录中。dataLogDir 参数指示用于事务日志的其他目录。
3. 运行ZooKeeper集群
创建zookeeper群起脚本
#!/bin/bash
for i in 192.168.248.129 192.168.248.130 192.168.248.131
do
echo "=====$i====="
ssh $i 'source /etc/profile;zkServer.sh start'
done