一、Zookeeper概述

1.1 概述

Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

1.2 特点

1)Zookeeper:一个领导者(leader),多个跟随者(follower)组成的集群。

2)Leader负责进行投票的发起和决议,更新系统状态。

3)Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票。

4)集群中奇数台服务器只要有半数以上节点存活,Zookeeper集群就能正常服务。

5)全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的。

6)更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行。

7)数据更新原子性,一次数据更新要么成功,要么失败。

8)实时性,在一定时间范围内,client能读到最新数据。

1.3 数据结构

ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能够存储1MB的元数据,每个ZNode都可以通过其路径唯一标识。

数据结构图

1.4 应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

1.4.1 统一命名服务

1.4.2 统一配置管理

1、分布式环境下,配置文件管理和同步是一个常见问题

(1) 一个集群中,所有节点的配置信息是一致的,比如hadoop集群

(2) 对配置文件修改后,希望能够快速同步到各个节点上

2、配置管理可交由ZK实现

(1)可配置信息写入ZK上的一个Znode

(2)各个节点监听这个ZNode

(3)一旦Znode中的数据被修改,ZK将通知各个节点

1.4.3 统一集群管理

集群管理结构图如下所示。

1、 分布式环境中,实时掌握每个节点的状态是必要的。

(1) 可根据节点实时做出一些调整

2、 可交由Zk实现

(1) 可将节点信息写入ZK上的一个ZNode

(2) 监听这个Znode可获取它的实时状态变化

3、 典型应用

(1) HBase中Master状态监控与选举

1.4.4 服务器节点动态上下线

1.4.5 软负载均衡

1.5 下载地址

1)官网首页:

https://zookeeper.apache.org/

2)下载截图

【hadoop生态之ZooKeeper】第一章Zookeeper概述【笔记+代码】相关推荐

  1. 【hadoop生态之Hbase】HBASE简介【笔记+代码】

    一.HBaes介绍 1.1.HBase简介 HBase是一个分布式的.面向列的开源数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式. 大:上亿行.百万 ...

  2. 第一章 MongoDb概述

    版本修改历史 版本 修改内容 修改人 日期 1.0 创建文档 李乐 2010-6-30 第一章 MongoDb概述 集文档数据库,键值对存储和关系型数据库的优点于一身. MongoDB (名称来自&q ...

  3. IT项目管理总结:第一章 项目管理概述

    第一章 项目管理概述 使用项目管理的好处 –更好地控制财力.物力和人力资源 –改进客户关系 –缩短开发时间 –降低成本和提高生产率 –提高质量和可靠性 –更大的边际利润空间 –更好的内部协调 –积极影 ...

  4. 计算机网络(谢希仁第八版)第一章:概述

    1.计算机网络在信息时代的作用 三网:电信网络,有线电视网络,计算机网络. 三网融合:由于涉及多方面的利益和行政管辖权的问题,目前没有实现. Internet(译名:因特网,目前使用最广泛的译名为:互 ...

  5. 【JUC】第一章 JUC概述、Lock 接口

    第一章 JUC 概述.Lock 接口 文章目录 第一章 JUC 概述.Lock 接口 一.JUC 概述 1.什么是 JUC 2.线程和进程概念 3.线程的状态 4.并发与并行 5.管程 6.用户线程和 ...

  6. Java极速入门系列:第一章Java概述、Java环境、IDEA开发工具

    Java极速入门-第一章Java概述.Java环境.IDEA开发工具 一.什么是Java 1.好的编程语言的特性 2.Java的特点 3.Java的运行机制 4.Java的三大体系 5.Java环境 ...

  7. 第一章 分布式计算概述

    第一章 分布式计算概述 一.分布式计算的概念 分布式计算是计算机科学的重要研究内容,主要研究对象是分布式系统.简单地说,一个分布式系统是由若干通过网络互连的计算机组成的软硬件系统,且这些计算机互相配合 ...

  8. 972信息检索 | 第一章 信息检索概述

    文章目录 第一章 | 信息检索概述 信息检索基本概念 信息检索的含义 信息检索的种类 信息检索的原理 信息检索的历史 手工检索(1876-1945) 机械信息检索(1945-1954) 脱机批处理检索 ...

  9. Python入门到精通【精品】第一章 - Python概述

    Python入门到精通[精品]第一章 - Python概述 1. Python语言历史 2. Python语言特点 3. Python的下载和安装 3.1. Python的下载 3.2. Python ...

  10. 第一章 人机交互概述

    第一章 人机交互概述 1.1 人机交互的概念 1.1.1 为什么要研究人机交互 ​ 提高人们工作效率,使人们的工作生活更加简洁,更加方便 1.1.2 什么是人机交互 ​ 人机交互(HCI)是关于设计. ...

最新文章

  1. 字符串编辑距离(Edit Distance)
  2. 拨开云雾见天日:剖析单机事务原理
  3. Python 循环控制语句-break/continue
  4. 最全ACM常用STL
  5. 程序员看不起事业单位员工:一年收入才4万?网友:40岁再比一比,究竟谁更牛逼!!
  6. c# Form中的键盘响应
  7. 注释 向 Java 代码中添加元数据
  8. 一笔期货成交的始末(可能有问题)
  9. Visual Studio Code(VS code)简单使用入门以及常用快捷键
  10. IDEA中XML与main文件里设置自动补全快捷键
  11. 公有IP和私有IP及最新国内各运营商(ISP)IP段表
  12. AWD:赛前准备工作以及深度脚本讲解
  13. 大学生计算机考证时间表
  14. 初探MYD-AM335x开发板
  15. 最详细G1垃圾回收器日志解读
  16. 使用ffmpeg调整图像大小
  17. [Win32]鼠标的基本概念以及击中测试
  18. 【爬虫】IP代理池调研
  19. 初学编程,学哪种语言比较好?
  20. 基于php的同学校友录网站

热门文章

  1. 【持续更新】Leetcode SQL题目全解析(附建表sql)
  2. USB 为什么一般选择48MHz
  3. 前后端对接及接口管理平台浅析
  4. redis常用命令总结,一文足以(5种基本数据结构+bitmap+Geo+HyperLogLog+Streams)
  5. (C语言设计系统)利用EasyX完成学校工资管理系统
  6. 商业银行风险计量 第二章 最低资本要求
  7. 机器学习阶段性总结[机器学习]
  8. 枫叶HD高清视频转换器 V10.2.2.0 官方安装版
  9. 软件工程实践2018第四次作业——团队展示
  10. 系统检测到您疑似使用网页抓取工具访问本_12款最常使用的网络爬虫工具推荐...