集群搭建

1. 下载二进制文件

$ wget --no-check-certificate https://mirrors.ustc.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
$ tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz

2. 创建数据目录

$ cd apache-zookeeper-3.7.0-bin
$ mkdir data
$ mkdir data/zk1 data/zk2 data/zk3

3. 创建 myid 文件,并指定每个服务器标识

$ touch ./data/zk1/myid ./data/zk2/myid ./data/zk3/myid
$ echo 1 > ./data/zk1/myid
$ echo 2 > ./data/zk2/myid
$ echo 3 > ./data/zk3/myid

4. 创建三个配置文件,并添加集群配置

zoo1.cfg

tickTime=2000
initLimit=10
yncLimit=5
dataDir=/Users/zhangpeng/workspace/software/apache-zookeeper-3.7.0-bin/data/zk1
clientPort=2181
# 一般 admin.server 默认的端口号 8080 会被占用,这里改为 8081
admin.server=8081
# 指定集群中服务器
# 端口1:用于数据同步
# 端口2:用于leader选举
server.1=localhost:2880:3880
server.2=localhost:2882:3882
server.3=localhost:2884:3884

zoo2.cfg

tickTime=2000
initLimit=10
yncLimit=5
dataDir=/Users/zhangpeng/workspace/software/apache-zookeeper-3.7.0-bin/data/zk2
clientPort=2182
# 一般 admin.server 默认的端口号 8080 会被占用,这里改为 8081
admin.server=8081
# 指定集群中服务器
# 端口1:用于数据同步
# 端口2:用于leader选举
server.1=localhost:2880:3880
server.2=localhost:2882:3882
server.3=localhost:2884:3884

zoo3.cfg

tickTime=2000
initLimit=10
yncLimit=5
dataDir=/Users/zhangpeng/workspace/software/apache-zookeeper-3.7.0-bin/data/zk3
clientPort=2183
# 一般 admin.server 默认的端口号 8080 会被占用,这里改为 8081
admin.server=8081
# 指定集群中服务器
# 端口1:用于数据同步
# 端口2:用于leader选举
server.1=localhost:2880:3880
server.2=localhost:2882:3882
server.3=localhost:2884:3884

4. 启动

# 启动第一台
$ ./bin/zkServer.sh start ./conf/zoo1.cfg
# 启动第二台
$ ./bin/zkServer.sh start ./conf/zoo2.cfg
# 启动第三台
$ ./bin/zkServer.sh start ./conf/zoo3.cfg

5. 查看各个服务器角色信息

$ ./bin/zkServer.sh status ./conf/zoo1.cfg
$ ./bin/zkServer.sh status ./conf/zoo2.cfg
$ ./bin/zkServer.sh status ./conf/zoo3.cfg

常见问题

你在安装过程中出现的问题,绝对不会只有你一个人碰到过,所以99%的问题都可以在网上找到答案,如果在 stack overflowgoogle上都找不到你想要的答案,并且提问方式没有问题 的话,大胆去问你的同事吧,相信你的同事会称赞你问了一个好问题。

# Q1: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.quorumpeermain
# A1: 需要下载带有二进制的包(apache-zookeeper-3.7.0-bin.tar.gz)而不是源码包(apache-zookeeper-3.7.0.tar.gz) # Q2: 端口号被占用
# A2: admin.server 默认的端口号为 8080,该端口号可能已经被占用,可用 lsof -i:8080 查看是什么进程在占用

最新文章

  1. pitch yaw roll是什么
  2. (iOS)项目总结-项目中遇到的各种的问题和解决方法
  3. java里面时间差比较
  4. Prince2的七大原则(7)
  5. 服务器端json数据文件分割合并解决方案
  6. Ubuntu 上创建常用磁盘阵列
  7. [已解决] java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.com.yourproject.test_jsp
  8. 通过maven添加quartz
  9. Excel--java POi
  10. 二维码生成 - QrCodeNet
  11. Flask web开发 处理POST请求(登录案例)
  12. oracle常用高级sql---1
  13. 【反编译系列】一、反编译代码(dex2jar + jd-gui)和反编译资源(apktool)
  14. Ettercap之ARP+DNS欺骗
  15. 回归JavaScript基础(八)
  16. BETA-2
  17. CSUOJ 1560 图书管理员的表白方式
  18. MFC异常处理的问题
  19. 51Nod 1256 扩展欧几里得求乘法逆元
  20. ThinkPHP种where的使用(_logic and _complex)的使用实例

热门文章

  1. PostGIS之线性参考
  2. Python:Excel自动化实践入门篇 乙【送图书活动继续】
  3. Qt中的多窗体编程(续二)
  4. element的表格组件label宽度设置
  5. react 05 router
  6. 金蝶AAS-V9精简版使用手册1.6
  7. golang 数组(array)
  8. Idea2020.2.3 创建JavaWeb项目(部署Tomcat)方法
  9. 宝塔Linux定时shell
  10. 配置tomcat 服务 启动模式