zookeeper集群搭建及Leader选举算法源码解析

一.zookeeper概述

1.zookeeper 简介
  zookeeper 是一个开源的分布式应用程序协调服务器,是 Hadoop 的重要组件。
  zooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务器,是 Google 的Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、集群管理等。ZooKeeper的目标就是封装复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
2.ZK 基本概念
  对于 Zookeeper 的学习,首先需要了解一些基本概念。
1).三类角色
  为了避免 Zookeeper 的单点问题,zk 也是以集群的形式出现的。zk 集群中的角色主要有以下三类:
  a.Leader:zk 集群写请求的唯一处理者,并负责进行投票的发起和决议,更新系统状态。Leader 是很民主的,并不是说其在接收到写请求后马上就修改其中保存的数据,而是首先根据写请求提出一个提议,在大多数 zkServer 均同意时才会做出修改。
  b.Follower:接收客户端请求,处理读请求,并向客户端返回结果;将写请求转给 Leader;在选主(选 Leader)过程中参与投票。
  c.Observer:可以理解为无选主投票权的 Flollower,其主要是为了协助 Follower 处理更多的读请求。如果 Zookeeper 集群的读请求负载很高,或者客户端非常非常多,多到跨机房,则可以设置一些 Observer 服务器,以提高读取的吞吐量。

  Leader是写请求的唯一处理者,原因是:写请求关乎数据的一致性,由Leader写,然后广播给其他子节点。
2).三种模式
  Zookeeper 的核心是广播,这个机制保证了各个 zkServer 间数据的同步,即数据的一致性。实现这个机制的协议叫做 ZAB 协议,即 Zookeeper Atomic Broadcast,ookeeper 原子广播协议。ZAB 协议有三种模式:恢复模式、同步模式和广播模式。
  a.恢复模式:在服务重启过程中,或在 Leader 崩溃后,就进入了恢复模式,要恢复到 zk集群正常的工作状态。
  b.同步模式:在所有的 zkServer 启动完毕,或 Leader 崩溃后又被选举出来时,就进入了同步模式,各个 Follower 需要马上将 Leader 中的数据同步到自己的主机中。当大多数zkServer 完成了与 Leader 的状态同步以后,恢复模式就结束了。所以,同步模式包含在恢复模式过程中。
  c.广播模式:当 Leader 的提议被大多数 zkServer 同意后,Leader 会修改自身数据,然后会将修改后的数据广播给其它 Follower。

二.zookeeper 的安装与集群搭建
一.安装单机zookeeper
  对于系统安全性、实时性要求不是很高的系统,为了节约成本,使用单机 Zookeeper 作为协调服务器也是可以的。
1.准备工作
1).克隆并配置主机
  克隆一台干净的主机,并修改配置。
  a.修改主机名:/etc/hostname
  b.修改网络配置:/etc/sysconfig/network-scripts/ifcfg-ens33
2).下载zookeeper安装包
  在http://zookeeper.apache.org官网下载。

2.上传安装包
  将下载的 Zookeeper 安装包上传到 zk04 主机的/usr/tools 目录。

原文地址:https://www.cnblogs.com/flyingeagle/p/10023262.html

时间: 2024-07-30 01:25:58

zookeeper集群搭建及Leader选举算法源码解析的相关文章

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

zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是hadoop的一个子项目,其发展历程无需赘述.在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制 不适合在某些应用中使用,因此需要有一种可靠的.可扩展的.分布式的.可配置的协调机制来统一系统的状态.Zookeeper的目的就在于此. 1.角色 Zookeeper中的角色主要有以下三

2. zookeeper集群搭建

zookeeper集群搭建 1.zookeeper集群组件: Zookeeper集群中的服务器角色有三种, leader(主)  server, follower(从)  server, observer(从)  server: 2.leader特殊之处在于它有决定权,具有Request Processor (observer server 与follower server的区别就在于不参与leader选举) 3.配置文件: 3.1将zoo_sample.cfg修改为zoo.cfg配置文件(好记

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

当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转账,支付宝转账这种,如果是一台机器的话,这个还是很方便的,windows中自带了一个事务协 调器mstsc,但是呢,你那种很大很牛逼的项目不可能全是windows服务器,对吧,有些人为了解决这个问题,会采用2pc,3pc这种算法,或者是paxos的思 想进行分布式下的一致性处理,当然在这个世界上,真

Zookeeper 集群搭建

下载并上传 zookeeper-3.5.3-beta.tar.gz 到各个服务器的/soft/zookeeper目录,或者使用wget命令,如下: cd /soft/zookeeper wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.3-beta/zookeeper-3.5.3-beta.tar.gz tar -xvf zookeeper-3.5.3-beta.tar.gz 在各个服务器上解压zoo

Linux下ZooKeeper集群搭建

首先安装VMWare,装了两个虚拟机,版本是CentOS6.5,IP分别是 192.168.3.20 192.168.3.21 然后下载ZooKeeper包:http://zookeeper.apache.org/,使用命令tar -zxvf  zookeeper.tar.gz 进行解压,解压到/opt/soft目录 修改主机名 vim  /etc/hosts ,在hosts文件中添加一下两项 192.168.1.20 master 192.168.1.21 slave1 进入zookeeper

【zookeeper】 zookeeper 集群搭建

集群搭建环境: 发行版:CentOS-6.6 64bit 内核:2.6.32-504.el6.x86_64 CPU:intel-i7 3.6G 内存:2G 集群搭建步骤: 1. 确保机器安装了jdk [[email protected] ~]# java -version openjdk version "1.8.0_51" OpenJDK Runtime Environment (build 1.8.0_51-b16) OpenJDK 64-Bit Server VM (build

CentOS下的ZooKeeper集群搭建

ZooKeeper集群搭建过程: 1.下载ZooKeeper安装包,解压安装: 2.在/etc/profile下配置ZooKeeper环境变量,增加变量$ZOOKEEP_HOME=ZooKeeper安装目录,再将$ZOOKEEPER_HOME/bin添加到$PATH变量: 3.将ZooKeeper安装目录conf下zoo_sample.cfg另存为zoo.cfg, 并修改相关配置信息: 4.将zoo.cfg文件拷贝到集群下的其他服务器上: 5.在每一台ZooKeeperZooKeeper服务器的

solr+zookeeper集群搭建

一.前期准备工作 相关工具: 1.虚拟机(VMware) 2.tomcat7 64位  下载地址:http://tomcat.apache.org/download-70.cgi 3.centos6.4  64位 4.linux下的64位jdk安装包,版本为6或以上 5. solr-4.3.1.tgz包  下载:http://archive.apache.org/dist/lucene/solr/ 6. zookeeper-3.4.5.tar.gz包  下载:http://hadoop.apac

zookeeper文档(1)----zookeeper集群搭建

转载请注明出处:http://blog.csdn.net/beitiandijun/article/details/41802835 ubuntu下搭建zookeeper集群步骤 主要参考文档: http://zookeeper.apache.org/doc/r3.3.3/zookeeperStarted.html http://www.blogjava.net/hello-yun/archive/2012/05/03/377250.html 一.下载源码: 官方网站: http://mirro