Apache ZooKeeper是一个为分布式应用所设计的开源协调服务,其设计目的是为了减轻分布式应用程序所承担的协调任务。它可以为用户提供同步、配置管理、分组和命名等服务。在这里,对ZooKeeper的完全分布式集群安装部署进行介绍。
基本环境
JDK :1.8.0_151 (要求1.6+)
ZooKeeper:3.4.9
主机数:3(要求3+,且必须是奇数,因为ZooKeeper的选举算法)
主机名 | IP地址 | JDK | ZooKeeper | myid |
---|---|---|---|---|
master | 192.168.1.11 | 1.8.0_151 | zkServer-01 | 1 |
slave1 | 192.168.1.12 | 1.8.0_151 | zkServer-02 | 2 |
slave2 | 192.168.1.13 | 1.8.0_151 | zkServer-03 | 3 |
1.1 下载安装介质
下载安装介质,下载地址为: http://archive.apache.org/dist/zookeeper/
根据情况选择下载的版本,我这里下载的版本是zookeeper-3.4.9.tar.gz
# wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
1.2 解压并安装
解压
# tar -zxvf zookeeper-3.4.9.tar.gz
可执行文件都在bin/目录下,配置都在conf/目录下
1.3 修改zoo.cfg配置文件
将 zookeeper-3.4.9/conf目录下的zoo_sample.cfg文件拷贝一份,命名为为zoo.cfg
$ cp zoo_sample.cfg zoo.cfg
编辑该文件,在最后面添加如下参数
#集群需要配置如下server参数
#server.1=zkServer-01:2888:3888
#server.2=zkServer-02:2888:3888
#server.3=zkServer-03:2888:3888
dataDir=/data/zookeeper
dataLogDir=/var/log/apps/zookeeper
创建目录
$ mkdir -p /data/zookeeper
$ chmod 777 /data/zookeeper
$ mkdir -p /var/log/apps/zookeeper
$ chmod -R 777 /var/log/apps/zookeeper
配置hosts
$ vim /etc/hosts
#添加
192.168.1.11 zkServer-01
192.168.1.12 zkServer-02
192.168.1.13 zkServer-03
1.4 启动zookeeper
在每个节点上执行
#进入zookeeper/bin目录
$cd zookeeper-3.4.9/bin
#启动
$ ./zkServer.sh start
JMX enabled by default
Using config: ....zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
1.5 启动客户端测试
启动命令:
$ bin/zkCli.sh -server 127.0.0.1:2181
>Connecting to 127.0.0.1:2181
>.....
>[zk: 127.0.0.1:2181(CONNECTED) 0]
# 显示根目录下、文件:
ls /
>[zookeeper]
# 创建文件,并设置初始内容:
create /test hello
>Created /test
# 获取文件内容:
get /test
>hello
>cZxid = 0x200000002
>ctime = Thu Dec 28 13:57:25 CST 2017
>mZxid = 0x200000002
>mtime = Thu Dec 28 13:57:25 CST 2017
>pZxid = 0x200000002
>cversion = 0
>dataVersion = 0
>aclVersion = 0
>ephemeralOwner = 0x0
>dataLength = 5
>numChildren = 0
# 修改文件内容:
set /test world
# 删除文件:
delete /test
# 退出客户端:
quit
1.6 查看状态
$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader/follower
#如果是单机
#Mode: standalone
1.7 重启
$zkServer.sh restart
>JMX enabled by default
>Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
>JMX enabled by default
>Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
>Stopping zookeeper ... STOPPED
>JMX enabled by default
>Using config: /usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
>Starting zookeeper ... STARTED