Zookeeper:安装、集群搭建
跳到导航
跳到搜索
关于
Zookeeper 更多用作分布式协调服务,所以集群的搭建配置是重点。
zookeeper 用到了三个端口,其作用:
- 2181 : 对 client 端提供服务;
- 2888 : 集群内机器通信使用;
- 3888 : 选举 leader 使用;
单机安装
在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行:
- 任意Linux OS - 支持开发和部署。适合演示应用程序。
- Windows OS - 仅支持开发。
- Mac OS - 仅支持开发。
ZooKeeper服务器是用Java创建的,它在JVM上运行(需要使用JDK 6或更高版本)。
zookeeper 下载地址为: https://zookeeper.apache.org/releases.html。
Linux
安装步骤:
- 使用 wget 命令下载,并提取文件:
$ wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz $ tar -zxvf zookeeper-3.4.14.tar.gz
- 创建数据目录:
$ cd zookeeper-3.4.14 $ mkdir data
- 创建并修改配置文件“zoo.cfg”:
$ cd zookeeper-3.4.14 $ cd conf/ $ cp zoo_sample.cfg zoo.cfg $ vi zoo.cfg tickTime = 2000 dataDir = ../data clientPort = 2181 initLimit = 5 syncLimit = 2
- 启动 ZooKeeper 服务器:
$ bin/zkServer.sh start $ JMX enabled by default $ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg $ Starting zookeeper ... STARTED
- 查看服务端状态(启动单机节点):
$ bin/zkServer.sh status $ JMX enabled by default $ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg Mode: standalone
- 启动客户端:
$ sh zkCli.sh
- 帮助命令:
ZooKeeper -server host:port <cmd> <args> stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port
Windows
安装步骤:
- 下载文件并解压:
- 创建数据、日志目录:
- 创建并修改配置文件“zoo.cfg”:(从conf目录下的“zoo_sample.cfg”文件复制而来)
- 启动 ZooKeeper 服务器:(双击 zkServer.cmd 启动程序)
- 启动 ZooKeeper 客户端:
集群搭建
【以下使用 virtualbox 示范三台 zookeeper 服务端集群搭建步骤(云服务器或者物理机同理)】
安装:
- 创建三台虚拟机环境(centos)并安装好 java 开发工具包 JDK。
- 查看 ip 地址可以用 ifconfig 命令;
- 安装:(按照安装步骤)在服务器分别安装 zookeeper;
配置:(在所有服务器中分别操作,以下以第一台为例)
- 创建“数据目录”(dataDir)、“日志目录”(dataLogDir);
- 创建“myid”文件:
vim /tmp/zookeeper/myid 1
- myid 是一个名称为“myid”的文本文件,默认位于“数据目录”下;
- myid 的内容是且只能是一个数字,用于表示节点在集群中的唯一编号(必须确定每个节点的myid不同);
- 创建配置文件“zoo.cfg”:
- 修改“dataDir”、“dataLogDir”;
dataDir = /path/to/zookeeper/data dataLogDir = /path/to/zookeeper/log
- 分别对应于第一步创建的“数据目录”、“日志目录”;
- 配置“clientPort”:
clientPort = 2181
- 表示客户端连接集群节点所用的端口号;
- 配置“节点信息”:(,每一台机器需要包括集群所有节点的信息):
server.1=192.168.3.33:2888:3888 server.2=192.168.3.35:2888:3888 server.3=192.168.3.37:2888:3888
- 格式为“server.id = host:port:port”,每一行表示集群的一个节点,id、host 分别对应一台机器的 myid、ip 的配置;
- 前一个 port 表示节点间通信的端口,后一个 port 表示用于选举的端口;
- 每台机器的配置文件都需要配置全部节点的信息。
- 配置“时间选项”:
tickTime = 2000 initLimit = 5 syncLimit = 2
- “tickTime”:单元时间,zookeeper的时间计算单元,默认 3000,单位 ms;
- “initLimit”:节点的初始化时间,tickTime的倍数,默认 10;
- “syncLimit”:心跳最大延迟周期,tickTime的倍数,默认 5;
- 修改“dataDir”、“dataLogDir”;
启动集群:
- 分别启动三台服务器的 Zookeeper;
集群启动完成后,查看三台机器状态:
至此,集群搭建成功!
- Mode:leader 代表主节点,follower 代表从节点,此处为一主二从。