独立模式部署
下载 ZooKeeper
下载地址:http://zookeeper.apache.org/releases.html
通常选择最新的 stable 版本。
解压缩
解压缩到某一目录 (这里以 /opt 目录为例),可以修改解压缩后的文件夹名称
bash
# 解压缩
tar -zxf /opt/apache-zookeeper-3.8.3-bin.tar.gz
# 重命名
mv /opt/apache-zookeeper-3.8.3-bin /opt/zookeeper
# 解压缩
tar -zxf /opt/apache-zookeeper-3.8.3-bin.tar.gz
# 重命名
mv /opt/apache-zookeeper-3.8.3-bin /opt/zookeeper
添加配置文件
进入配置目录
bash
cd /opt/zookeeper/conf
cd /opt/zookeeper/conf
创建配置文件 zoo.cfg
bash
vi zoo.cfg
vi zoo.cfg
添加配置信息,
ini
tickTime=2000
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/log
clientPort=2181
tickTime=2000
dataDir=/var/lib/zookeeper
dataLogDir=/var/lib/log
clientPort=2181
tickTime=2000(Zookeeper 最小时间单元,单位毫秒 (ms),默认值为 3000)。
dataDir=/var/lib/zookeeper(Zookeeper 服务器存储快照文件的目录,必须配置)。
dataLogDir=/var/lib/log(Zookeeper 服务器存储事务日志的目录,默认为 dataDir)。
clientPort=2181(服务器对外服务端口,一般设置为 2181)。
ZooKeeper 启停
首先进入 zookeeper 的 bin 目录下,
bash
cd /opt/zookeeper/bin
cd /opt/zookeeper/bin
调用 zkServer.sh
脚本,可以对 zookeeper 进行如下操作:
- 启动 ZooKeeper 服务:
./zkServer.sh start
- 查看 ZooKeeper 服务状态:
./zkServer.sh status
- 停止 ZooKeeper 服务:
./zkServer.sh stop
- 重启 ZooKeeper 服务:
./zkServer.sh restart
连接 ZooKeeper
首先进入 zookeeper 的 bin 目录下。
bash
cd /opt/zookeeper/bin
cd /opt/zookeeper/bin
调用 zkCli.sh
脚本,连接到 zookeeper
bash
./zkCli.sh -server 127.0.0.1:2181
./zkCli.sh -server 127.0.0.1:2181
更多 cli 命令,参考 zookeeperCLI。
集群部署
准备工作
最少三台服务器(奇数),打通网络,配置 ssh 免密登录,安装 JDK;
配置 hosts
192.168.188.128 node1
192.168.188.129 node2
192.168.188.130 node3
192.168.188.128 node1
192.168.188.129 node2
192.168.188.130 node3
关闭防火墙
bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
可以参考 集群环境配置
配置文件
在独立模式部署的前提下,修改配置文件如下
ini
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
指定节点 id
使用 echo 命令,写入希望的节点 id 到 zoo.cfg 配置的 dataDir 目录下的 myid 文件中:
bash
echo 1 > /opt/zookeeper/data/myid
echo 2 > /opt/zookeeper/data/myid
echo 3 > /opt/zookeeper/data/myid
echo 1 > /opt/zookeeper/data/myid
echo 2 > /opt/zookeeper/data/myid
echo 3 > /opt/zookeeper/data/myid
配置 Zookeeper 启动脚本
bash
vi /etc/init.d/zookeeper
vi /etc/init.d/zookeeper
sh
#!/bin/bash
ZK_HOME='/opt/zookeeper'
case $1 in
start)
echo "---------- zookeeper 启动 ------------"
$ZK_HOME/bin/zkServer.sh start
;;
stop)
echo "---------- zookeeper 停止 ------------"
$ZK_HOME/bin/zkServer.sh stop
;;
restart)
echo "---------- zookeeper 重启 ------------"
$ZK_HOME/bin/zkServer.sh restart
;;
status)
echo "---------- zookeeper 状态 ------------"
$ZK_HOME/bin/zkServer.sh status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac
#!/bin/bash
ZK_HOME='/opt/zookeeper'
case $1 in
start)
echo "---------- zookeeper 启动 ------------"
$ZK_HOME/bin/zkServer.sh start
;;
stop)
echo "---------- zookeeper 停止 ------------"
$ZK_HOME/bin/zkServer.sh stop
;;
restart)
echo "---------- zookeeper 重启 ------------"
$ZK_HOME/bin/zkServer.sh restart
;;
status)
echo "---------- zookeeper 状态 ------------"
$ZK_HOME/bin/zkServer.sh status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac
启停服务
- 启动 ZooKeeper 服务:
service zookeeper start
- 查看 ZooKeeper 服务状态:
service zookeeper status
- 停止 ZooKeeper 服务:
service zookeeper stop
- 重启 ZooKeeper 服务:
service zookeeper restart
启动后查看状态,如下为启动成功示例,Mode 表示是领导节点还是从节点
bash
[root@node1 bin]# service zookeeper status
---------- zookeeper 状态 ------------
/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
[root@node1 bin]# service zookeeper status
---------- zookeeper 状态 ------------
/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
连接 ZooKeeper
首先进入 zookeeper 的 bin 目录下。
bash
cd /opt/zookeeper/bin
cd /opt/zookeeper/bin
调用 zkCli.sh
脚本,连接到 zookeeper
bash
./zkCli.sh -server 127.0.0.1:2181
./zkCli.sh -server 127.0.0.1:2181
在一个节点 set 数据,查看其他节点是否可以查看到该数据,以验证集群是否部署成功。