一、官网

https://zookeeper.apache.org/

二、下载安装

(1)下载

复制链接地址  http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

linux中执行

wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

(2)安装与解压

tar -zxvf zookeeper-3.4.14.tar.gz  -C /opt/apps/

结果如下

(3)复制实例

防止出问题,我们复制一份

cp ./zookeeper-3.4.14/ zookeeper1 -r

(4)复制配置文件

复制Zookeeper安装目录下的conf目录中的zoo_sample.cfg文件,并命名为zoo.cfg

cp ./zookeeper/conf/zoo_sample.cfg  zoo.cfg

(5)修改配置文件

说明:

  • 等号左边的“server.数字”,表示要设置第几个zkServer节点。数字一般从1开始计数,依次加1。
  • 等号右边的第一段,表示该zkServer节点的主机,可以是主机名,也可以是主机IP
  • 等号右边的第二段,表示连接端口号。即其它zkServer与当前主机连接的端口号。每台主机的连接端口号可以任意设置,且可不一样。
  • 等号右边的第三段,表示选举端口号。若当前的Leader宕机,各个Follower需要选举新的Leader,这些Follower之间为了选举而相互联系,就使用该端口号。每台主机的选举端口号可以任意设置,且可不一样。
  • 在第四台Server后添加了observer,用于指定其在集群中将以Observer的身份出现

(6)创建myid文件

myid的值与zoo.cfg中指定的主机编号相同。

先创建目录

mkdir -p /usr/data/zookeeper/zk1/


  1. [root@iz2zebb7s8ui8b5mmag51xz ~]# echo 1 > /usr/data/zookeeper/zk1/myid
  2. [root@iz2zebb7s8ui8b5mmag51xz ~]# echo 2 > /usr/data/zookeeper/zk2/myid
  3. [root@iz2zebb7s8ui8b5mmag51xz ~]# echo 3 > /usr/data/zookeeper/zk3/myid
  4. [root@iz2zebb7s8ui8b5mmag51xz ~]# echo 4 > /usr/data/zookeeper/zk4/myid

(7)第四台主机配置额外配置

第四台主机即为要作Observer的主机,除了要完成以上配置,修改myid为4外,还需要修改zoo.conf文件:添加peerType=observer。用于指定当前Server即为Observer。

三、操作Zookeeper

(1)启动

进入用户当前目录

依次启动服务器

./zookeeper1/bin/zkServer.sh start ./zookeeper1/conf/zoo.cfg

./zookeeper2/bin/zkServer.sh start ./zookeeper2/conf/zoo.cfg

./zookeeper3/bin/zkServer.sh start ./zookeeper3/conf/zoo.cfg

./zookeeper4/bin/zkServer.sh start ./zookeeper4/conf/zoo.cfg

(2)查看状态

./zookeeper1/bin/zkServer.sh status ./zookeeper1/conf/zoo.cfg

./zookeeper2/bin/zkServer.sh status  ./zookeeper2/conf/zoo.cfg

./zookeeper3/bin/zkServer.sh status  ./zookeeper3/conf/zoo.cfg

./zookeeper4/bin/zkServer.sh status ./zookeeper4/conf/zoo.cfg

(3)停止

./zookeeper1/bin/zkServer.sh stop ./zookeeper1/conf/zoo.cfg

./zookeeper2/bin/zkServer.sh stop  ./zookeeper2/conf/zoo.cfg

./zookeeper3/bin/zkServer.sh stop  ./zookeeper3/conf/zoo.cfg

./zookeeper4/bin/zkServer.sh stop ./zookeeper4/conf/zoo.cfg

四、安装出现的问题

问题1

因本人在阿里云服务器上操作,服务启动查看不了状态,提示连接不上。

原因:在阿里云服务器安全组需要设置入方向的端口设置

问题2

zoo.conf 中的IP进行配置时候,不要配置成公网Ip,专有网络这样是没办法链接的!

必须在不同的服务器上把对应本地的那个公网Ip改成0.0.0.0

Linux上Zookeeper集群搭建的更多相关文章

  1. Linux下zookeeper集群搭建

    Linux下zookeeper集群搭建 部署前准备 下载zookeeper的安装包 http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper ...

  2. Linux centos7 zookeeper集群搭建

    Zookeeper集群搭建 描述:本章节主要单服务器搭建集群,在一个服务器上启动多个不同端口的zookeeper服务,非真实环境. 真实环境下zookeeper集群会搭建在多个物理服务器上,并非单一的 ...

  3. 分布式协调服务Zookeeper集群搭建

    分布式协调服务Zookeeper集群搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装jdk环境 1>.操作环境 [root@node101.yinzhengjie ...

  4. Kafka学习之(五)搭建kafka集群之Zookeeper集群搭建

    Zookeeper是一种在分布式系统中被广泛用来作为:分布式状态管理.分布式协调管理.分布式配置管理.和分布式锁服务的集群.kafka增加和减少服务器都会在Zookeeper节点上触发相应的事件kaf ...

  5. zookeeper集群搭建及常用场景实现

    本文完整源码地址 基于zookeeper的常用用法.分布式锁.分布式队列及leader选举实现 https://github.com/killianxu/zookeeper_example zooke ...

  6. java 学习笔记(三)ZooKeeper集群搭建实例,以及集成dubbo时的配置 (转)

    ZooKeeper集群搭建实例,以及集成dubbo时的配置 zookeeper是什么: Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式 ...

  7. Zookeeper集群搭建及原理

    1 概述 1.1 简介 ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务,提供了诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知和分布式锁等分 ...

  8. 分布式架构中一致性解决方案——Zookeeper集群搭建

    当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...

  9. kafka学习(二)-zookeeper集群搭建

    zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是h ...

随机推荐

  1. webpack 之开发环境优化 source-map

    webpack 之开发环境优化 source-map /** * source-map:一种 提供源代码到构建后代码映射 技术 (如果构建后代码出错了,通过映射可以追踪源代码错误) * [inline ...

  2. 1.在项目中使用D3.js

    在项目中使用D3.js D3.js(全称:Data-Driven Documents)是一个基于数据操作文档的JavaScript库.D3帮助您使用HTML.SVG和CSS使数据生动起来.D3对web ...

  3. [python]Pytest+selenium+git+jenkins持续集成

    1安装pytest框架 &pip install pytest   #pytest &pip install pytest-html  #pytest html测试报告 2.工程介绍 ...

  4. c++学习笔记(四)

    动态内存分配 使用new分配内存 1.指针的用处是在运行阶段分配未命名的内存以储存值. 2.在此情况下,只能通过指针来访问内存. int *ptr_int=new int;//在内存阶段为一个int值 ...

  5. ExtJS 去除水印

    在路径(根目录/ext/classic(或者modern)/theme-base/sass/etc/all.scss)文件中修改\(ext-trial: true !default; 为\)ext-t ...

  6. Typora常用命令

    目录 Typora编辑器所用语法--Markdown 简介 1.Markdown --标题 2. Markdown --列表(子标题) 3. Markdown --列表嵌套 4. Markdown - ...

  7. 菜鸡的Java笔记 - java 双向一对多映射

    双向一对多映射    two-way    开发要求:        根据数据表的结构进行简单java类的转换:        要求实现如下的输出信息:            可以根据课程取得全部参与 ...

  8. 算法题-n月后兔子数量

    有一对兔子,从出生后第5个月起每个月都生一对兔子,小兔子长到第5个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public class test3 { public stati ...

  9. [atAGC052F]Tree Vertices XOR

    结论 注意到如果$x$周围有偶数个1,对$x$操作显然不会改变$a_{x}$,因此不妨强制操作的点周围要有奇数个1,不难发现此时恰好会改变该点,即令$a_{x}=a_{x}\oplus 1$ 称$\{ ...

  10. CreateProcess error=206, 文件名或扩展名太长。

    改: