• 通俗解释zookeeper


    一、Zookeeper在Hadoop生态圈的位置
    分布式环境下常见的问题
    集群的管理问题,如何检测各个节点的生命状态
    如何实现分布式锁
    如何统一管理集群的配置文件
    集群中某个节点的信息更新如何同步到整个集群的机器
    集群内部的选举问题如何实现
    抢占资源的时候,容易出现死锁和活锁,当处于活锁时每个线程都抢不到资源,会造成CPU的耗费,如何减少消耗
    了解完分布式环境下所面临的问题后,其实我们接下来所要介绍的组件,就可以很轻松地来解决这些情况。我们继续来看一下什么是Zookeeper,Zookeeper的英文意思是动物管理员。Zookeeper在Hadoop生态圈里面,是处于一个分布式协调的服务,请看下面Hadoop生态圈的图:

    Hadoop生态圈中包含了很多组件,一眼望去,几乎所有组件的头像都是动物,唯独这个Zookeeper,是一个人的形象。我们都知道,我们人是要比动物高级的,其实也可以说明一个问题,我们的Zookeeper其实在大数据环境中,是一个非常重要的角色,主要体现在可以协调我们的其他组件。

    二、Zookeeper的概念及特点
    Zookeeper的概念
    什么是Zookeeper?其实可以用一句简单的话来总结:Zookeeper是一个长得像Linux系统,但是每个目录又是可以存放内容的小型数据库。Zookeeper的每个目录,其实是称为我们Zookeeper里面的节点。操作起Zookeeper,其实就像在操作Linux系统一样。每个节点,又可以存放内容,比如说,可以简单存一下HBase(分布式列式数据库,数据主要存放在HDFS上)与HDFS的路由信息等。

    Zookeeper的特点
    部署Zookeeper的时候是要单独部署、单独配置,但是多个Zookeeper也将会组成一个集群。整个集群对外展示的是一个完整统一的视图,比如我们去操作Zookeeper集群,只需要对其中一台操作即可,其会同步到整个集群。
    Zookeeper集群往往是部署奇数台,这是由于其内部选举机制所限制的。

    Zookeeper的相关名词解释
    节点:即目录,目录里面可以存放内容,各种应用场景,与节点的特性密切相关。
    节点的特性有两种维度,第一维度为是持久还是临时,另一维度为是否有序。组合成四种类型:
    1、临时节点(EPHEMERAL):创建者超时连接或者失去连接时,节点会被删除
    2、持久节点(PERSISTENT):节点创建后会被持久化,客户端与Zookeeper断开连接后,该节点依旧存在
    3、临时有序节点(EPHEMERAL_SEQUENTIAL)与持久有序节点(PERSISTENT_SEQUENTIAL)
    创建的节点名称后会自动添加序号,如节点名称为"node",自动添加为"node1",顺序添加为"node2",以此类似,序号不断添加。
    watcher机制:我们都知道Zookeeper是一个分布式协调服务,那么是怎么协调的呢?其实Zookeeper自己本身有一个watcher机制,监控着我们的节点变化的,就像是我们人的眼睛,可以监控着你的大数据集群里面哪些动物(服务器)出问题了,出了问题又会怎么操作,这些都离不开Zookeeper的watcher机制。

    三、Zookeeper的常用应用场景
    1、配置文件的同步:当集群里面,往往很多台服务器都使用相同的配置,如果突然配置文件里面的配置有改变,那么需要去修改每一台服务器的配置,这个时候就非常地麻烦,如果有了Zookeeper,那么我们可以在Zookeeper里的一个节点上存放好配置文件,因为我们的Zookeeper拥有监控机制,所以,当一台服务器的节点发生变化的时候,会被Zookeeper监控到,然后将改变结果,同步到Zookeeper集群,即同步到其他服务器。
    2、分布式锁实现:每个用户都去Zookeeper里面创建临时序列节点,创建的节点是有序的,而且是临时的。我们可以让最小的有序节点来获取分布式锁,当获得锁的用户执行完程序,则删除其对应的节点,然后其他节点就是最小节点了,此时执行其他节点,以此类型进行下去,达到分布式锁的作用…
    3、各个组件的HA(High Availability:高可用性)的实现:比如说,我们前面的HDFS集群,master节点上有一个Namenode进程,其余slaves节点分别有一个Datanode进程,当Namenode进程挂掉之后,整一个集群就挂了,这在大数据场景里面是不允许的。此时就可以用上我们的Zookeeper,监控集群的状态,比如说部署两个Namenode,其中一个是活跃状态,一个是备用状态,当活跃的Namenode服务器挂掉后,Zookeeper会监控到情况,并自动地切换备用状态Namenode会活跃状态。
    ————————————————
    版权声明:本文为CSDN博主「邵奈一」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/shaock2018/article/details/97755346

  • 相关阅读:
    nodejs简易代理服务器
    request发送json-rpc请求
    nodejs使用sequelize操作mysql实例
    nodejs添加jsonwebtoken验证
    .net core下使用DbProviderFactories.GetFactory("")无法创建工厂的解决方案
    .net core 后台如何生成html字符串到前台_后台html字符串在前台显示编码状态
    .net core入门-跨域访问配置
    .net core入门-项目启动时报错:HTTP Error 502.5
    .net core项目启动时报_未处理Socket异常(以一种访问权限不允许的方式做了一个访问套接字的尝试。)
    winform批量更新数据_长时间的执行会导致界面卡死
  • 原文地址:https://www.cnblogs.com/zourui4271/p/12809165.html
Copyright © 2020-2023  润新知