“Zookeeper:安装、集群搭建”的版本间差异
跳到导航
跳到搜索
(建立内容为“== 安装 == 在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行: * 任意Linux OS - 支持开发和部署。适合演示应…”的新页面) |
(→集群搭建) |
||
(未显示同一用户的8个中间版本) | |||
第1行: | 第1行: | ||
== | [[category:Zookeeper]] | ||
== 关于 == | |||
Zookeeper 更多用作分布式协调服务,所以集群的搭建配置是重点。 | |||
zookeeper 用到了三个端口,其作用: | |||
# '''2181''' : 对 client 端提供服务; | |||
# '''2888''' : 集群内机器通信使用; | |||
# '''3888''' : 选举 leader 使用; | |||
== 单机安装 == | |||
在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行: | 在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行: | ||
* 任意Linux OS - 支持开发和部署。适合演示应用程序。 | * 任意Linux OS - 支持开发和部署。适合演示应用程序。 | ||
第5行: | 第16行: | ||
* Mac OS - 仅支持开发。 | * Mac OS - 仅支持开发。 | ||
ZooKeeper服务器是用Java创建的,它在'''JVM''' | ZooKeeper服务器是用Java创建的,它在'''JVM'''上运行(需要使用JDK 6或更高版本)。 | ||
zookeeper 下载地址为: [https://zookeeper.apache.org/releases.html https://zookeeper.apache.org/releases.html]。 | zookeeper 下载地址为: [https://zookeeper.apache.org/releases.html https://zookeeper.apache.org/releases.html]。 | ||
第51行: | 第61行: | ||
Mode: standalone | Mode: standalone | ||
</syntaxhighlight> | </syntaxhighlight> | ||
# 启动客户端: | |||
#: <syntaxhighlight lang="java" highlight=""> | |||
启动客户端: | |||
<syntaxhighlight lang="java" highlight=""> | |||
$ sh zkCli.sh | $ sh zkCli.sh | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#: 帮助命令: | |||
帮助命令: | #: <syntaxhighlight lang="java" highlight=""> | ||
<syntaxhighlight lang="java" highlight=""> | ZooKeeper -server host:port <cmd> <args> | ||
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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
第102行: | 第109行: | ||
== 集群搭建 == | == 集群搭建 == | ||
【以下使用 virtualbox 示范三台 zookeeper 服务端集群搭建步骤(云服务器或者物理机同理)】 | |||
安装: | |||
# 创建三台虚拟机环境(centos)并安装好 java 开发工具包 JDK。 | |||
#: IP:192.168.3.33 | |||
#:: [[File:Zookeeper:集群搭建:节点1:环境.png|600px]] | |||
#: IP:192.168.3.35 | |||
#:: [[File:Zookeeper:集群搭建:节点2:环境.png|600px]] | |||
#: IP:192.168.3.37 | |||
#:: [[File:Zookeeper:集群搭建:节点3:环境.png|600px]] | |||
#* 查看 ip 地址可以用 '''ifconfig''' 命令; | |||
# 安装:(按照安装步骤)在服务器分别安装 zookeeper; | |||
配置:(在所有服务器中分别操作,以下以第一台为例) | |||
# 创建“'''数据目录'''”(dataDir)、“'''日志目录'''”(dataLogDir); | |||
# 创建“'''myid'''”文件: | |||
#: <syntaxhighlight lang="java" highlight=""> | |||
vim /tmp/zookeeper/myid | |||
1 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
#* myid 是一个名称为“myid”的文本文件,默认位于“数据目录”下; | |||
#* myid 的内容是且只能是一个数字,用于表示节点在集群中的唯一编号(必须确定每个节点的myid不同); | |||
# 创建配置文件“'''zoo.cfg'''”: | |||
## 修改“dataDir”、“dataLogDir”; | |||
##: <syntaxhighlight lang="java" highlight=""> | |||
dataDir = /path/to/zookeeper/data | |||
dataLogDir = /path/to/zookeeper/log | |||
</syntaxhighlight> | |||
##* 分别对应于第一步创建的“数据目录”、“日志目录”; | |||
## 配置“clientPort”: | |||
##: <syntaxhighlight lang="java" highlight=""> | |||
clientPort = 2181 | |||
</syntaxhighlight> | |||
##* 表示客户端连接集群节点所用的端口号; | |||
## 配置“节点信息”:(,每一台机器需要包括集群所有节点的信息): | |||
##: <syntaxhighlight lang="java" highlight=""> | |||
server.1=192.168.3.33:2888:3888 | |||
server.2=192.168.3.35:2888:3888 | |||
server.3=192.168.3.37:2888:3888 | |||
</syntaxhighlight> | |||
##* 格式为“server.id = host:port:port”,每一行表示集群的一个节点,id、host 分别对应一台机器的 myid、ip 的配置; | |||
##* 前一个 port 表示节点间通信的端口,后一个 port 表示用于选举的端口; | |||
##* 每台机器的配置文件都需要配置全部节点的信息。 | |||
## 配置“时间选项”: | |||
##: <syntaxhighlight lang="java" highlight=""> | |||
tickTime = 2000 | |||
initLimit = 5 | |||
syncLimit = 2 | |||
</syntaxhighlight> | |||
##* “tickTime”:单元时间,zookeeper的时间计算单元,默认 3000,单位 ms; | |||
##* “initLimit”:节点的初始化时间,tickTime的倍数,默认 10; | |||
##* “syncLimit”:心跳最大延迟周期,tickTime的倍数,默认 5; | |||
启动集群: | |||
#: 分别启动三台服务器的 Zookeeper; | |||
#* 启动前需要关闭防火墙(生产环境需要打开对应端口) | |||
#*: <syntaxhighlight lang="java" highlight=""> | |||
systemctl stop firewalld | |||
</syntaxhighlight> | |||
#* 首先启动 192.168.3.33 时,若此时查看日志出现报错是正常现象:(因为另外两台还没启动,暂时连接不上) | |||
#*: [[File:Zookeeper:集群搭建:节点1:启动.png|600px]] | |||
集群启动完成后,查看三台机器状态: | |||
: IP:192.168.3.33 | |||
:: [[File:Zookeeper:集群搭建:节点1:状态.png|600px]] | |||
: IP:192.168.3.35 | |||
:: [[File:Zookeeper:集群搭建:节点2:状态.png|600px]] | |||
: IP:192.168.3.37 | |||
:: [[File:Zookeeper:集群搭建:节点3:状态.png|600px]] | |||
至此,集群搭建成功! | |||
* Mode:leader 代表主节点,follower 代表从节点,此处为一主二从。 |
2021年9月28日 (二) 19:49的最新版本
关于
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 代表从节点,此处为一主二从。