一、简介

  ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

1. ZooKeeper的基本运转流程

1、选举Leader,选举机制大于1/2。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并Follow选出的Leader。

2. Leader工作流程

  Leader主要有三个功能:  

1.恢复数据;  
2.维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型;
3.Learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。PING消息是指Learner的心跳信息;REQUEST消息是Follower发送的提议信息,包括写请求及同步请求;ACK消息是Follower的对提议的回复,超过半数的Follower通过,则commit该提议;REVALIDATE消息是用来延长SESSION有效时间。

3. Follower工作流程

  Follower主要有四个功能:

  1. 向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息)

2.接收Leader消息并进行处理;
3.接收Client的请求,如果为写请求,发送给Leader进行投票;
4.返回Client结果。

   Follower的消息循环处理如下几种来自Leader的消息:

  1.PING消息:心跳消息  

2.PROPOSAL消息:Leader发起的提案,要求Follower投票
3.COMMIT消息:服务器端最新一次提案的信息
4.UPTODATE消息:表明同步完成
5.REVALIDATE消息:根据Leader的REVALIDATE结果,关闭待revalidate的session还是允许其接受消息
6.SYNC消息:返回SYNC结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新。
更多内容:http://www.cnblogs.com/felixzh/p/5869212.html

二、安装配置

1. 环境信息

IP:192.168.10.10 Hostname:LFTo-Zookeeper01
IP:192.168.10.11 Hostname:LFTo-Zookeeper02
IP:192.168.10.12 Hostname:LFTo-Zookeeper03

2. 安装配置

  安装JDK基础环境

[worker@LFTo-Zookeeper01 ~]$ cd  /home/worker/soft/
[worker@LFTo-Zookeeper01 soft]$ wget http://10.12.3.24/soft/jdk/jdk1.8.0_65.tar.gz
[worker@LFTo-Zookeeper01 soft]$ mkdir -p /home/worker/usr/local/
[worker@LFTo-Zookeeper01 soft]$ tar xf jdk1.8.0_65.tar.gz -C /home/worker/usr/local/
[worker@LFTo-Zookeeper01 soft]$ ln -s /home/worker/usr/local/jdk1.8.0_65 /home/worker/usr/local/jdk
[worker@LFTo-Zookeeper01 soft]$ vim ~/.bash_profile
#########JDK ENV#########
export JAVA_HOME=/home/worker/usr/local/jdk
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH生效环境变量
[worker@LFTo-Zookeeper01 soft]$ source ~/.bash_profile

  安装zookeeper,配置单点

[worker@LFTo-Zookeeper01 soft]$ wget http://10.12.3.24/upload/zhaobin/zookeeper/zookeeper-3.4.6.tar.gz
[worker@LFTo-Zookeeper01 soft]$ tar xf zookeeper-3.4.6.tar.gz -C ~/opt/
[worker@LFTo-Zookeeper01 soft]$ cd ~/opt/zookeeper-3.4.6/conf
[worker@LFTo-Zookeeper01 conf]$ cp zoo_sample.cfg zoo.cfg#修改配置文件
[worker@LFTo-Zookeeper01 conf]$ vim zoo.cfg
dataDir=/home/worker/opt/zookeeper_data/#创建数据目录
[worker@LFTo-Zookeeper01 conf]$ mkdir -p /home/worker/opt/zookeeper_data/

  关闭、启动、重启服务等

[worker@LFTo-Zookeeper01 conf]$ /home/worker/opt/zookeeper-3.4.6/bin/zkServer.sh --help
JMX enabled by default
Using config: /home/worker/opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
Usage: /home/worker/opt/zookeeper-3.4.6/bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}

3. 集群配置

  在集群的每台服务器host中添加以下配置

[root@LFTo-Zookeeper01 ~]# vim /etc/hosts
192.168.10.10   LFTo-Zookeeper01
192.168.10.11   LFTo-Zookeeper02
192.168.10.12   LFTo-Zookeeper03

  修改配置文件,配置集群

[worker@LFTo-Zookeeper01 conf]$ vim zoo.cfg
server.1=LFTo-Zookeeper01:2888:3888
server.2=LFTo-Zookeeper02:2888:3888
server.3=LFTo-Zookeeper03:2888:3888
[worker@LFTo-Zookeeper01 conf]$ echo '1' >> /home/worker/opt/zookeeper_data/myid
.
.
.
.
[worker@LFTo-Zookeeper02 conf]$ echo '2' >> /home/worker/opt/zookeeper_data/myid
[worker@LFTo-Zookeeper03 conf]$ echo '3' >> /home/worker/opt/zookeeper_data/myid

  重启zookeeper服务

[worker@LFTo-Zookeeper01 conf]$ ~/opt/zookeeper-3.4.6/bin/zkServer.sh restart

转载于:https://www.cnblogs.com/zzlain/p/6628221.html

Linux系统运维之Zookeeper集群配置相关推荐

  1. linux系统运维面试题

    标签:linux系统运维面试题 1.     简述常用高可用技术 解答: Keepalived:Keepalived是一个保证集群高可用的服务软件,用来防止单点故障,使用VRRP协议实现.在maste ...

  2. 墨天轮社区专属福利:与作者互动问答,民工哥全新力作《Linux系统运维指南:从入门到企业实战》送上!...

    墨墨导读:最近人民邮电出版社出版了新书<Linux系统运维指南:从入门到企业实战>,本书是同名经典畅销书的升级版,基于MySQL 5.7版本进行了内容改写,同时穿插介绍了MySQL 8.0 ...

  3. Linux系统运维与架构设计之Linux概述

    Linux系统运维与架构设计之Linux概述 Linux系统运维与架构设计 1.1 浅谈计算机系统 1.1.1 计算机硬件系统 现代计算机是基于冯·诺依曼体系结构,由运算器.控制器.存储器.输入设备. ...

  4. Linux系统运维必备技能

    浅谈Linux系统运维工程师必备技能 一.什么是运维工程师 相信读者们必定听说过linux,也听说过运维工程师.那么运维工程师是个什么概念呢? 百度百科上的官方解释如下: 运维工程师(Operatio ...

  5. linux系统运维面试题大全(137道题)

    linux系统运维面试题大全 1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 查看物理cup: cat /proc/cpuinfo|grep -c 'physical id' 查看 ...

  6. 民工哥折腾了2年多的《Linux系统运维指南》终于和大家见面了

    2018年3月,我与张老师就这么在微信上聊了起来,起初我并没有写书的打算,我们之间只是通过讨论.交流的形式聊聊关于出书的方方面面.最终,敌不过张老师超强的专业能力.细致的解说与盛情相邀,我答应张老师写 ...

  7. Linux系统运维书单

    导语:全球进入了互联网+时代,越来越多的传统企业都在考虑通过网络提供产品和服务,包括互联网+教育.互联网+金融.互联网+出租车.互联网+保险等.而互联网(包括移动互联网在内)几乎都是由Linux技术支 ...

  8. 很实用的Linux 系统运维常用命令及常识(超实用)

    很实用的Linux 系统运维常用命令及常识(超实用) 作为Linux运维,需要了解Linux操作系统的基本使用和管理知识,下面脚本之家小编给大家介绍下Linux运维需要掌握的命令,想成为Linux运维 ...

  9. Linux系统运维常用命令

    Linux 系统运维常用命令 1 文件管理2 软件管理3 系统管理 4 服务管理5 网络管理6 磁盘管理 7 用户管理8 脚本相关9 服务配置 ============================ ...

最新文章

  1. 使用MarkDown编辑器做出有意思的柱状图(完整代码)
  2. oracle 数据导出
  3. GML-SVG-VML比较
  4. ISA2006的部署
  5. JEPaas【按钮隐藏】根据单据状态值决定【添加明细】【删除】按钮的隐藏和显示
  6. plotly之甘特图绘制
  7. Linux网络——一种强制门户技术
  8. 数据库内容集锦(持续更新)
  9. 关于图书馆占座问题的调查
  10. STM32F4应用笔记(二)利用蜂鸣器播放天空之城
  11. java注释及注释颜色设置
  12. 双网卡上网冲突解决_【优特普.安防百科】交换机组网最常见的8大故障及解决方式...
  13. 腾讯云 短信 简单使用
  14. python考拉兹猜想_考拉兹猜想的变体
  15. Unity 3D模型展示之自由观察模型
  16. 鸿蒙系统荣耀新机,鸿蒙系统要来了?网传荣耀新机搭载麒麟9000+鸿蒙OS
  17. CentOS 7安装Mongodb并使用Robo 3T远程测试连接
  18. 高中物理中汽车恒定功率启动问题分析
  19. 单片机 c语言 p1控制流水灯,单片机控制的流水灯程序
  20. 立创EDA仿真入门1 基本操作

热门文章

  1. jquery-validation插件
  2. BZOJ4327 : JSOI2012 玄武密码
  3. 三亚之旅 海景--美得让你尖叫
  4. winform C#的委托事件在winform窗体中传值,也可用于刷新另一窗体(窗体A刷新窗体B)...
  5. Mongodb数据分片的实现
  6. Fedora 16 硬盘安装体会
  7. 仿苹果的导航,有点凹陷的感觉
  8. iis5顺利安装诀窍
  9. was web 服务器性能测试,was web 服务器性能测试
  10. WebService大讲堂之Axis2(3):使用services.xml文件发布WebService