zookeeper集群搭建
时间:2022-07-22
本文章向大家介绍zookeeper集群搭建,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
概要
整体的搭建十分简单,只需要区别一些各个实例的dataDir
和clientPort
配置信息即可。
整体结构:
➜ ~ tree -L 1 zookeepers
zookeepers
├── data
├── zk.sh
├── zookeeper-3.4.9-2181
├── zookeeper-3.4.9-2182
└── zookeeper-3.4.9-2183
4 directories, 1 file
配置
当前使用的zookeeper版本为3.4.9
,好像默认只能读取conf/zoo.cfg
配置文件,无法在运行时指定。所以,直接将zk复制三份,分别配置。
zookeeper-3.4.9-2181/conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/Users/lpe234/zookeepers/data/2181
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#
#
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
另外两个的配置文件类似,只需要修改一下 dataDir
和clientPort
,另外的server.[myid]
配置是个重点。
dataDir的文件结构如下:
➜ ~ tree -L 2 zookeepers/data
zookeepers/data
├── 2181
│ ├── myid
│ ├── version-2
│ └── zookeeper_server.pid
├── 2182
│ ├── myid
│ ├── version-2
│ └── zookeeper_server.pid
└── 2183
├── myid
├── version-2
└── zookeeper_server.pid
6 directories, 6 files
myid
也就是cfg文件中,server.[myid]
的配置。即是每个server的唯一ID。
# 依次生成即可, 这样才能与cfg配置的信息相对应起来
➜ zookeepers echo 1 > data/2181/myid
➜ zookeepers echo 2 > data/2182/myid
➜ zookeepers echo 3 > data/2183/myid
运行
依次执行启动命令即可。
➜ ~ zookeeper-3.4.9/bin/zkServer.sh -h
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeeper-3.4.9/bin/../conf/zoo.cfg
Usage: zookeeper-3.4.9/bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
启动脚本
zk.sh
#!/usr/bin/env bash
# set -e
case "${1}" in
start)
echo "start"
cd /Users/lpe234/zookeepers/zookeeper-3.4.9-2181 && bin/zkServer.sh start
cd /Users/lpe234/zookeepers/zookeeper-3.4.9-2182 && bin/zkServer.sh start
cd /Users/lpe234/zookeepers/zookeeper-3.4.9-2183 && bin/zkServer.sh start
;;
stop)
echo "stop"
zookeeper-3.4.9-2181/bin/zkServer.sh stop
zookeeper-3.4.9-2182/bin/zkServer.sh stop
zookeeper-3.4.9-2183/bin/zkServer.sh stop
;;
status)
zookeeper-3.4.9-2181/bin/zkServer.sh status
zookeeper-3.4.9-2182/bin/zkServer.sh status
zookeeper-3.4.9-2183/bin/zkServer.sh status
;;
*)
echo "only support {start|status|stop}"
;;
esac
查看运行情况
➜ zookeepers ./zk.sh start
start
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2181/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2182/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2183/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
➜ zookeepers ./zk.sh status
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2181/bin/../conf/zoo.cfg
Mode: follower
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2182/bin/../conf/zoo.cfg
Mode: leader
ZooKeeper JMX enabled by default
Using config: /Users/lpe234/zookeepers/zookeeper-3.4.9-2183/bin/../conf/zoo.cfg
Mode: follower
- 邮件发送功能开发
- Vuejs和其他前端框架的对比
- 详述 IntelliJ IDEA 中恢复代码的方法
- C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能
- 微信小程序之picker组件
- 详述 IntelliJ IDEA 中恢复代码的方法「进阶篇」
- mac环境下mongodb的安装和使用
- C# 终极基类Object介绍
- EF基础知识小记五(一对多、多对多处理)
- 字符串的方法汇总
- Kotlin和anko融合进行Android开发
- EF基础知识小记六(使用Code First建模自引用关系,常用于系统菜单、文件目录等有层级之分的实体)
- Vue.js简介
- Kotlin之Elvis 操作符
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter 初学者必读的高级布局规则
- Docker Swarm群集配置实战——第二战
- Python 基础(五):序列
- OpenCV黑魔法之隐身衣 | 附源码
- SQL 统计用户留存
- 常用的前端JQ插件
- 面向对象编程(设计模式)需要遵循的 6 个基本原则
- SAP CRM Application Extension Tool的Custom Behavior
- Python 基础(四):字符串
- 使用Faster-RCNN进行指定GPU训练(续)
- SAP CDS view自学教程之十:SAP CDS view扩展性(Extensibility)实现原理
- 使用Faster-RCNN进行指定GPU训练
- Faster RCNN 环境配置
- SAP cross distribution chain status在Fiori应用中的draft handling
- 构建复杂应用的神器,FBroadcast