好程序员大数据技术分享:Zookeeper集群管理与选举

  • 时间:
  • 浏览:0
  • 来源:大发11选5_大发11选5官网

  这名,监控系统在 /clusterServers 节点上注册一一一一五个Watcher,已经 每动态加机器,没有 就往 /clusterServers 下创建一一一一五个 EPHEMERAL类型的节点:/clusterServers/{hostname}. 那我,监控系统就也能实时知道机器的增减情况表,至于后续除理就是监控系统的业务了。

  集群中机器有变动的已经 ,牵连修改的东西比较多。

  2.Master选举

  另外,这名 场景演化一下,就是动态Master选举。这就要用到?EPHEMERAL_SEQUENTIAL类型节点的行态了。

  利用ZooKeeper有一一一五个行态,就能只能实时另这名集群机器存活性监控系统:

  有一定的延时。

  在分布式环境中,相同的业务应用分布在不同的机器上,这名 业务逻辑(这名这名 耗时的计算,网络I/O除理),往往只只能让整个集群中的某一台机器进行执行,其余机器能只能共享这名 结果,那我能只能大大减少重复劳动,提高性能,于是这名 master选举便是这名 场景下的碰到的主要疑问。

  创建EPHEMERAL类型的节点,一旦客户端和服务器的会话已经 开始英文或过期,没有 该节点就会消失。

  客户端在节点 x 上注册一一一一五个Watcher,没有 因为 x?的子节点变化了,会通知该客户端。

  这通常用于那种对集群中机器情况表,机器在线率有较高要求的场景,也能快速对集群中机器变化作出响应。那我的场景中,往往有一一一一五个监控系统,实时检测集群机器是算是存活。过去的做法通常是:监控系统通过这名手段(比如ping)定时检测每个机器,因为每个机器当事人定时向监控系统汇报“我还活着”。 这名 做法可行,而且位于一一一五个比较明显的疑问:

  利用ZooKeeper的强一致性,也能保证在分布式高并发情况表下节点创建的全局唯一性,即:一起有多个客户端请求创建 /currentMaster 节点,终究一定只能一一一一五个客户端请求也能创建成功。利用这名 行态,就能很轻易的在分布式环境中进行集群取舍 了。

  在搜索系统中,因为集群中每个机器都生成一份全量索引,不仅耗时,而且只能保证彼此之间索引数据一致。而且让集群中的Master来进行全量索引的生成,而且同步到集群中其它机器。另外,Master选举的容灾法子是,能只能随时进行手动指定master,就是说应用在zk在无法获取master信息时,能只能通过比如http法子,向一一一一五个地方获取master。

  上文中提到,所有客户端创建请求,最终只能一一一一五个也能创建成功。在这里稍微变化下,就是允许所有请求都也能创建成功,而且得有个创建顺序,于是所有的请求最终在ZK上创建结果的这名因为情况表是那我: /currentMaster/{sessionId}-1 ,?/currentMaster/{sessionId}-2 ,?/currentMaster/{sessionId}-3 ….. 每次取舍 序列号最小的那个机器作为Master,因为这名 机器挂了,因为他创建的节点会马上小时,没有 已经 最小的那个机器就是Master了。

     1.集群机器监控

  3.搜索系统

  在Hbase中,也是使用ZooKeeper来实现动态HMaster的选举。在Hbase实现中,会在ZK上存储这名 ROOT表的地址和 HMaster的地址,HRegionServer也会把当事人以临几点几分点(Ephemeral)的法子注册到Zookeeper中,使得HMaster能只能随时感知到各个HRegionServer的存活情况表,一起,一旦HMaster总出 疑问,会重新选举出一一一一五个HMaster来运行,从而除理了 HMaster的单点疑问