Zookeeper单机以及集群搭建教程

单机搭建

单机安装以及启动

安装zookeeper的前提是必须有java环境

# 选择目录进行下载安装
cd /app
# 下载zk,可以去官方网站下载,自己上传
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
# 解压zk
tar -zxvf zookeeper-3.4.11.tar.gz
# 设定软连接
ln -s zookeeper-3.4.11 zookeeper
# 添加两个目录,一个是数据目录,一个是日志目录
cd zookeeper/
mkdir data
mkdir log
# 添加配置文件zoo.cfg在zookeeper的config目录下面见【2】使用:wq! 进行保存
cd conf
cp zoo_sample.cfg zoo.cfg
# 修改 dataDir=/app/zookeeper/data dataLogDir=/app/zookeeper/log 目录
vi zoo.cfg
# 进入bin目录进行启动
cd ../bin
./zkServer.sh start
# 显示如下:Starting zookeeper ... STARTED即为成功

单机配置zoo.cfg的配置的内容,只需要修改dataDir、dataLogDir

# 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=/app/zookeeper/data
dataLogDir=/app/zookeeper/log
# 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

单机常用命令

# 进入zookeeper目录使用命令,连接成功则说明通过
./zkCli.sh
# 启动zk服务
./zkServer.sh start
# 查看zk服务状态
./zkServer.sh status
# 停止zk服务
./zkServer.sh stop
# 重启zk服务
./zkServer.sh restart

集群搭建

虚拟机配置

虚拟机1 虚拟机2 虚拟机3
172.16.48.129 172.16.48.130 172.16.48.131
myid:1 myid:2 myid:3

myid配置

# 在每个虚拟机的dataDir=/app/zookeeper/data目录下面创建myid文件
cd /app/zookeeper/data
# 创建myid文件,内容依照表格1,2,3.使用:wq进保存
vim myid

zoo.cfg配置添加

# 其他配置同单机配置
# 在zoo.cfg下面添加如下的集群配置server.myid
# 对应其他实例的内网ip地址
server.1=172.16.48.129:2888:3888
server.2=172.16.48.130:2888:3888
server.3=172.16.48.131:2888:3888

在三台虚拟机的终端同时启动三个zookeeper实例,zk1 -》 zk2 -》 zk3

cd /app/zookeeper/bin
./zkServer.sh start
./zkServer.sh status
# 分别在状态中显示了leader还是follower
虚拟机1 虚拟机2 虚拟机3
172.16.48.129 172.16.48.130 172.16.48.131
follower follower leader

高可用测试

按照道理zookeeper高可用3台的情况下只要两台挂了,集群就无法提供服务了。

一台挂了的情况: 关闭虚拟机3的zookeeper,调用status命令

虚拟机1 虚拟机2 虚拟机3
172.16.48.129 172.16.48.130 172.16.48.131
follower leader Error contacting service. It is probably not running.

虚拟机2转为了leader,虚拟机1和2一起提供服务

两台挂了的情况: 关闭虚拟机2的zookeeper,调用status命令

虚拟机1 虚拟机2 虚拟机3
172.16.48.129 172.16.48.130 172.16.48.131
Error contacting service. It is probably not running. Error contacting service. It is probably not running. Error contacting service. It is probably not running.

重新启动一台后,虚拟机1和虚拟机2能够提供服务

【运维技术】Zookeeper单机以及集群搭建教程的更多相关文章

  1. ZooKeeper单机伪集群搭建与启动

    下载解压 [xiaobai@xiaobai ~]$ tar -zvxf zookeeper-3.4.9.tar.gz 本机ip地址映射 [xiaobai@xiaobai /]$ su - rootPa ...

  2. Zookeeper单机伪集群

    Zookeeper单机伪集群 1.配置 zookeeper下载地址:http://apache.mirrors.lucidnetworks.net/zookeeper/ 可以选择需要的版本,我下载的是 ...

  3. 基于zookeeper的Swarm集群搭建

    简介 Swarm:docker原生的集群管理工具,将一组docker主机作为一个虚拟的docker主机来管理. 对客户端而言,Swarm集群就像是另一台普通的docker主机. Swarm集群中的每台 ...

  4. zookeeper及kafka集群搭建

    zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...

  5. Zookeeper简介与集群搭建【转】

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  6. zookeeper(二):linux centos下安装zookeeper(单机和集群)

    下载 http://zookeeper.apache.org/releases.html 解压 tar –zxvf zookeeper-3.4.6.tar.gz 解压文件到"/usr/loc ...

  7. zookeeper与Kafka集群搭建及python代码测试

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

  8. zookeeper 安装以及集群搭建

    安装环境: jdk1.7 zookeeper-3.4.10.tar.gz VM虚拟机redhat6.5-x64:192.168.1.200  192.168.1.201  192.168.1.202 ...

  9. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

随机推荐

  1. 计算时间:一个C++运算符重载示例

    Time类是一个用于计算时间的类,其原型如下:程序清单11.1 mytime0.h // mytime0.h -- Time class before operator overloading #if ...

  2. 微信公众号支付JSAPI,提示:2支付缺少参数:appId

    因为demo中支付金额是定死的,所以需要调整. 所以在使用的JS上添加了参数传入.这里的传入string类型的参数,直接使用是错误的,对于方法,会出现appid缺少参数的错误 //调用微信JS api ...

  3. 图片上传Security Error

    jQuery.Uploadify v3.2.js 现在得到的一个原因是跨域 http://www.xuebuyuan.com/848255.html 最近项目中要用文件上传控件,我就想到了Upload ...

  4. php array key 的存储规则

    刚刚写程序遇到php数组取值的问题,发现字符串和数字取出来的是一样的. key 可以是 integer 或者string.value 可以是任意类型. 此外 key 会有如下的强制转换: 包含有合法整 ...

  5. java三方---->html解析jsoup的使用

    jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据.今天我 ...

  6. MQTT协议笔记之mqtt.io项目HTTP协议支持

    前言 MQTT协议诞生之初,就未曾考虑通过HTTP传输.这也正常,网络受限.不稳定网络不太适合HTTP(2G/3G网络大家使用WAP不也OK嘛).在网络较为充裕的桌面端而言,虽纯文本对比二进制而言没多 ...

  7. codereviw得到的一些经验

    1.设置display为none的元素,它的背景图依然会被下载.所以最好是等到该元素需要显示时才给他加上相应的有背景图的class. 2.css中虽然ID选择器的优先级比较高,效率也比较高,但灵活性差 ...

  8. Android 7.1 SystemUI--任务管理--场景一:长按某个缩略图,拖动分屏的流程

    TaskView 类的长按事件 onLongClick 方法内发送了 DragStartEvent 事件消息,该 DragStartEvent 事件消息由 RecentsView,TaskStackV ...

  9. Maven入门指南(一)

    Maven介绍: Maven是一个强大的Java项目构建工具. 什么是构建工具? 构建工具是将软件项目构建相关的过程自动化的工具.构建一个软件项目通常包含以下一个或多个过程: 生成源码(如果项目使用自 ...

  10. ATDD和TDD的区别是什么?

    最近看到一个新名词"ATDD",全称"Acceptance Test Driven Development ",中文称"验收测试驱动开发". ...