单机环境的安装

首先下载ZK的二进制安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/

将安装包上传到Linux上:

  • 进行解压 : tar zxvf zookeeper-3.4.14.tar.gz

  • 进行更名 : mv zookeeper-3.4.14 zookeeper

  • 删除压缩包 :rm -rf zookeeper-3.4.14.tar.gz

进入到我们更名后的ZK文件夹内创建个文件夹 : mkdir data

进入到conf文件夹 复制一个文件且更名: cp zoo_sample.cfg zoo.cfg

  

对zoo.cfg文件进行编辑 vim zoo.cfg

数据文件夹dataDir指定为我们刚刚创建的那个data文件夹的路径,不要使用系统的/tmp目录作为ZK的数据目录

  

然后我们就可以启动服务了,在解压文件的bin目录下 :

  • 启动服务: ./zkServer.sh start

  • 查看状态: ./zkServer.sh status

单机的我们到这里就算是搭建完成了,用于测试环境还行,由于单机的服务都存在一个致命问题那就是单点故障问题,所以一般在生产环境中诸多这种类型的服务都是以集群的方式出现,下面我们搭建一个由三台服务器构成的的ZK集群

集群环境的搭建

在ZK集群环境下只要一般以上的机器正常启动了,那么这个集群服务就是OK 的,所以一把参与集群的机器都是单,比如5个机器,只需要3个正常就OJBK,下面我们就简单的使用三个机器搭建一下ZK的集群环境,三台机器的ip分别为如下:

  • 192.168.159.159

  • 192.168.159.169

  • 192.168.159.179

和创建单机环境一莫一样的步骤,只是添油加醋

首先我们在159的机器上开动

如法炮制

zk二进制文件上传、解压、更名、参考前面单机安装

首先在解压文件下创建data文件夹,用于保存内存数据库保存的模糊快照 :mkdir data

然后就是复制并更名一个文件 :cp zoo_sample.cfg zoo.cfg

添油加醋

编辑该文件 vim zoo.cfg

  • 第一个修改dataDir指向我们创建的data目录

  • 第二个在下面添加如下图数据

首先解释一下添加并圈起来的数据:

  • sserver.1:表示这个ZK启动后,ZK的myId就是 1

  • 后面跟对应服务器的ip

  • 然后就是2888,这是一个连接端口号,数据通讯的时候(比如同步 )通过这个端口号进行通讯

  • 然后就是3888,这是一个选举端口号,当选举时使用这个端口号进行通讯

创建myid文件

除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个目录也是我们自己创建的,也就是那个data目录,这个文件里面就只有一个数据就是 刚刚配置的那个myId的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个server。

在创建的data文件夹内创建文件: vi myid

每个机器都键入对应myid保存退出即可 比如59的myid为1 ,69的myid为2,就是配置文件中那个myid

配置环境变量

vi /etc/profile 在末端添加如下数据

  • export ZOOKEEPER_HOME=/usr/local/ZK/zookeeper

  • export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

退出保存后进入到 /etc 目录下 执行刷新生效命令 source profile

然后就是我们三台机器的启动工作了:

  • 服务启动:zkServer.sh start

  • 查看状态:zkServer.sh status

三台机器的状态依次为:

  

  

  

这里提醒一下,防火墙我是直接关闭了的,要么你的开通那几个端口,要么直接关闭防火墙服务

集群环境到这里就算搭建完成了

  

最新文章

  1. iOS常用第三方框架大全
  2. orleans/Documentation
  3. Loadrunner参数化连接oracle、mysql数据源报错及解决办法
  4. 安装 python psutil 包
  5. Android系统的常用权限
  6. 一、HTML和CSS基础--网页布局--实践--固定层效果
  7. Java实现邮箱找回密码 --转载
  8. Yii框架中集成phprpc、hprose
  9. MVC 过滤
  10. 4、Xcode8中的钥匙串保存数据取出时候为空的问题
  11. firefox 28.0
  12. apache+php+mysql运行环境
  13. RHEL7.0 Docker离线安装以及实战笔记
  14. python中list添加元素的方法append()、extend()和insert()
  15. [转]java中作用域public private protected 以及不写的区别
  16. API知识点总结
  17. spring cloud+.net core搭建微服务架构:配置中心(四)
  18. HTML5语义化
  19. Python2.7-random
  20. 20155202《网络对抗》Exp8 Web基础

热门文章

  1. Centos安装mysql5.6.33
  2. 2、Python 基础类型 -- String 字符串类型
  3. Yii2使用PHPExcel读取excel
  4. Vue学习笔记【8】——在Vue中使用样式
  5. IntelliJ IDEA下载地址
  6. spring boot基于DRUID数据源密码加密及数据源监控实现
  7. PAT_A1081#Rational Sum
  8. python TypeError: ‘encoding’ is an invalid keyword argument for this function
  9. 剑指offer——52第一个只出现一次的字符
  10. 使用shell脚本查看文件类型