• ZooKeeper 介绍


    Zookeeper用途场景:

    Zookeeper分布式服务框架是Apache Hadoop的一个子项目,主要是用来解决分布式应用经常遇到的一些数据管理问题。如:集群管理,统一命名服务,分布式配置管理,分布式消息队列,分布式说,分布式通知协调等。

    越来越多的分布式开始依赖ZK,比如Storm,Hbase等

    Zookeeper对分布式开发带来很多遍历,用ZK独有的特性巧妙解决很多难题,很多分布式技术用到Zookeeper特性,如Hbase,火爆的Storm。

    Zookeeper体系架构:

    数据模型、节点

    类似文件系统的目录型结构,同hadoop、HDFS:

    Watches

    ZK对Node的增删改查都可以除法监听

    watch事件是一次性触发器,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher

    watch事件异步发送至观察者

    watch是一次性除法的并且在获取watch事件和设置新watch之间有延迟,所以不能可靠的观察到节点的每一次变化

    客户端监视一个节点,先获取watch事件,再发现节点的数据变化

    watch事件顺序对应于Zookeeper服务所见数据更新的顺序

    Zookeeper在Hadoop平台典型应用

    Storm集群:Zookeeper作为nimbus(mastter)和supervisor(slave)的中间枢纽,保存Storm集群和作业的所有信息,并负责nimbus和supervisor的全部通信,Fast fill、

    Hbase集群:Zookeeper作为协调器,为HBase提供了稳定服务和fall over机制。

    应用三大块:

    Storm应用开发、Storm集群监控

    MapReduce应用开发

    Hbase应用开发

    流行的应用场景:

    分布式配置管理

    发布与订阅所谓的配置管理,就是把数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新,例如全局配置信息,地址列表等就会非常适合使用。

    Name Service

    这个主要是作为分布式命名服务,通过调用zk的create node api,能够很容易常见一个全局唯一的path,这个path可以作为一个名称。

    分布式通知协调

    zookeeper中特有的watcher注册与异步通知机制,能够很好地实现分布式环境下不同系统之间的通知与协调,实现对数据变更的实时处理。

    使用方法 通常是不同系统都对ZK上的znode进行watch,监听znode的变化,其中一个系统update了znode,另一个系统受到通知,并协同进行处理

    分布式锁

    分布式锁,这个主要得益于Zookeeper为我们保证了数据的强一致性

    锁服务可以分为两类,一个是保持独占,另一个是控制时序

    集群管理

    Hbase Master选举是经典的使用场景

    分布式队列

    一种是常规的先进先出队列,另一种是等到队列成员狙击之后按统一按序执行,对于第二种先进先出队列,增加分布式锁服务控制时序场景

  • 相关阅读:
    高精度计算
    高精度除以低精度
    P1258 小车问题
    POJ 2352 stars (树状数组入门经典!!!)
    HDU 3635 Dragon Balls(超级经典的带权并查集!!!新手入门)
    HDU 3938 Portal (离线并查集,此题思路很强!!!,得到所谓的距离很巧妙)
    POJ 1703 Find them, Catch them(确定元素归属集合的并查集)
    HDU Virtual Friends(超级经典的带权并查集)
    HDU 3047 Zjnu Stadium(带权并查集,难想到)
    HDU 3038 How Many Answers Are Wrong(带权并查集,真的很难想到是个并查集!!!)
  • 原文地址:https://www.cnblogs.com/littlepage/p/10808285.html
Copyright © 2020-2023  润新知