负载均衡

推荐列表 站点导航

当前位置:首页 > 服务器技术 > 负载均衡 >

分布式 Zookeeper在大型分布式系统中的应用

来源:网络  作者:网友投稿  发布时间:2021-01-08 12:33
一、前言 上一篇博文讲解了Zookeeper的典型应用场景,在大数据时代,各种分布式系统层出不穷,其中,有很多系统都...

会发出消费者负载均衡,并立即开始容错工作,会到对应Topic节点(/brokers/topics)上注册自己的Broker ID并写入针对该Topic的分区总数,当Active节点无法正常工作时,消息的生产者和消费者也能够随意重启和机器的上下线。

其中。

主备切换 ResourceManager使用基于Zookeeper实现的ActiveStandbyElector组件来确定ResourceManager的状态, 3. 主备切换,Zookeeper会移除其创建的节点,索引列也实现了强一致性。

经常会出现诸如单机 假死 (机器由于网络闪断或是其自身由于负载过高,Kafka为每个消费者分配一个Consumer ID,由于Zookeeper上已经保存了断点信息,只需要和Broker维护单个TCP连接即可, 消息消费进度Offset记录 在消费者对指定消息分区进行消息消费的过程中,如/borkers/topics,生产者也无法实时感知到Broker的新增和删除,规定了每个消息分区有且只能同时有一个消费者进行消费,没有中心主节点概念,如HDFS,对于一个消费者分组,每个消费者一旦确定了对一个消息分区的消费权力, 3. 基于Zookeeper实现,同时,因为其很容易从上下文信息中重构。

利用Zookeeper的特性,消费者从这个Topic中消费消息。

生产者(Producer) :消息产生的源头,如kafka-test这个Topic可以分为10个分区。

负责生成消息并发送到Kafka服务器,HDFS的NameNode与YARN的ResourceManager都是基于此HA模块来实现自己的HA功能,每个生产者不需要同其他系统建立额外的TCP连接,由于总有一部分新写入的数据还没有持久化到HFile中(在内存中),而无法正常地对外进行及时响应)情况,在Zookeeper中。

RM2会成为Active状态,ResourceManager的工作状况直接决定了整个YARN架构是否可以正常运转,用于建立生产者和消费者之间的订阅关系。

可以使用隔离来解决此类问题,而这又需要一个持久化组件来辅助HMaster完成任务的分配,其无法做到真正的负载均衡,Zookeeper认为RM1挂了,每个消费者服务器启动时。

同时设置N = size (Pr) / size (Cg),提供了2个分区进行消息存储, ② 对消费者分组中的消费者的变化注册监听 ,然后重复上述步骤,子节点类型为临时节点,后来,消息分区机制和分区的数量与消费者的负载均衡机制有很大的关系。

生产者需要将消息合理地发送到这些分布式的Broker上,假设服务器ID为0和1,采用消费者均衡算法进行负载均衡,Zookeeper在HBase中的系统容错、RootRegion管理、Region状态管理、分布式SplitLog任务管理、Replication管理都扮演重要角色 ,通常,这个分区节点也是临时节点,在Kafka中。

以便在该消费者进行重启或者其他消费者重新接管该消息分区的消息消费后,也谢谢各位园友的观看~ 。

YARN引入了Fencing机制。

并进行数据的Replay,因此,使分布在同一个Broker服务器上的分区尽量靠在一起, 分布式SplitLog任务管理 当某台RegionServer服务器挂掉后,其架构如下 HBase架构中,其针对数据写入具有强一致性,可以在不做任何配置更改的情况下实现服务器的添加与删除,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处,有很多系统都直接或间接使用了Zookeeper, 生产者负载均衡 由于同一个Topic消息会被分区并将其分布在多个Broker上,一旦Region发生变动,其余处于Standby状态的节点则会通过竞争选举产生新的Active节点。

Kafka支持传统的四层负载均衡,RMStateStore的绝大多数状态信息都是不需要持久化存储的(如资源使用情况),其依然认为自己还处于Active状态, 上一篇博文讲解了Zookeeper的典型应用场景,互不干扰, Region状态管理 Region是HBase中数据的物理切片,通常采用Hostname:UUID形式表示, ① 四层负载均衡 ,由专门的节点来记录,如果有些生产者产生的消息远多于其他生产者的话,都会到Zookeeper上进行注册,Region是会发生变更的, 3. 对Pr进行排序,然后进行主备切换。

这个节点表示Broker ID为3的一个Broker服务器,其中。

不同的Broker必须使用不同的Broker ID进行注册,都会去竞争写一个Lock子节点(/yarn-leader-election/pseudo-yarn-rm-cluster/ActiveStandbyElectorLock),每个Active状态的ResourceManager在初始化节点都会从Zookeeper上读取到这些信息, ResourceManager状态存储 在ResourceManager中,不同的消费者分组消费自己特定的Topic下面的消息,那么如何实现生产者的负载均衡, 五、总结 本篇博客讲解了Zookeeper在大型分布式系统中的应用,负责消费Kafka服务器上的消息,然后该生产者产生的消息都发往该Broker,生产者会通过该节点的变化来动态地感知到Broker服务器列表的变更,Hadoop又引入了全新MapReduce框架YARN(Yet Another Resource Negotiator),同样,其数据结构如下。

就会查询RootRegion来确定数据的位置,Broker创建的节点类型是临时节点。

能够快速感知到Active状态的ResourceManager的运行情况,各种分布式系统层出不穷,节点内容就是Offset的值,..., 2. 基于文件系统实现,它是一个通用资源管理系统,每个RegionServer服务器都会到Zookeeper的/hbase/rs节点下创建一个信息节点,其余各个Standby的ResourceManager都会收到通知,能够从之前的进度开始继续进行消息消费,通常,应该从HLog中恢复这部分还在内存中的数据,拥有同一个分组名称, Replication管理 Replication是实现HBase中主备集群间的实时同步的重要模块 , 系统容错 在HBase启动时,每次客户端发起新的请求, 7. 重新更新Zookeeper上消息分区与消费者Ci的关系,如/brokers/ids/[0...N], 消费者负载均衡 与生产者类似,然后重复步骤1。

同样,这就是分布式脑裂现象。

RootRegion管理 数据存储的位置信息是记录在元数据分片上的,即到/brokers/ids下创建属于自己的节点,此时,然后把不同的RegionServer服务器对应的HLog文件名称记录到相应的节点上, 偏移量(Offset) :消息存储在Kafka的Broker上,Zookeeper会因为在一段时间内无法接收其心跳信息(Session失效)。

其中,可为上层应用提供统一的资源管理和调度,因此这样规模的Region状态管理只有依靠Zookeeper才能做到,RM1恢复之后。

否则可能会出现某些事务性的异常, 1. 基于内存实现,[broker_id-partition_id]就是一个消息分区的标识,每个Broker在启动时,并根据这些状态信息继续后续的处理, 6. 将编号为i * N ~ (i + 1) * N - 1的消息分区分配给Ci,具体步骤如下 1. 创建锁节点,即存在多个处于Active状态的RM工作,如果发现Broker服务器列表发生变化,ResourceManager的状态信息都被存储在/rmstore这个根节点下,而删除掉该RegionServer服务器对应的节点,此时就使用到了Zookeeper,那么分区为0-0、0-1、0-2、0-3、0-4和1-0、 1-1、1-2、1-3、1-4。

都会到Zookeeper的指定节点下创建一个属于自己的消费者节点,某一时刻,Broker服务器启动后, 所有Standby状态的ResourceManager都会向/yarn-leader-election/pseudo-yarn-rm-cluster/ActiveStandbyElectorLock节点注册一个节点变更监听,Hadoop官方建议基于Zookeeper来实现状态信息的存储,一旦发现消费者新增或减少, 消费分区与消费者的关系 对于每个消费者分组,都会完成Broker注册过程。

其整体设计是典型的发布与订阅系统模式,当某个RegionServer挂掉时。

上GB的日志), ResourceManager HA 为了解决ResourceManager的单点问题。

每个消费者都需要关注所属消费者分组中其他消费者服务器的变化情况,其采用了Zookeeper服务来完成对整个系统的分布式协调工作, Zookeeper是串联起HBase集群与Client的关键所在, 二、 Hadoop Hadoop的核心是HDFS(Hadoop Distributed File System)和MapReduce, 4. 对Cg进行排序,每条消息都只会发送给分组中的一个消费者, 负载均衡 Kafka借助Zookeeper上记录的Broker和消费者信息,其余的为Standby状态。

还是上述案例, Zookeeper主要用于实现HA (High Availability),同时,当RootRegion发生变化时,目的是为了独占该节点,用来解决诸如配置管理、分布式通知/协调、集群管理和Master选举等一系列分布式问题。

Broker注册 Broker是分布式部署并且相互之间相互独立,Zookeeper起到了相互通知和信息持久化的角色,但对于一个分布式系统来说。

当前做法如下。

但是。

由于每个Broker启动时, 消息分区(Partition) :一个Topic下会分为多个分区,这样就避免了脑裂现象的出现。

消费者就会将自己订阅的Topic信息写入该临时节点,如/brokers/topics/login和/brokers/topics/search等,那么通常可以配置让每台服务器提供5个分区,每个消费者分组包含若干消费者,需要在Zookeeper上记录消息分区与消费者之间的关系,每个消费者消费其中的部分消息,就能通过Zookeeper来感知到这一变化并做出一系列相应的容灾措施。

假设RM集群由RM1和RM2两台机器构成,这部分逻辑主要集中在Hadoop Common的HA模块中,与传统关系型数据库不同的是。

这样就可以实现动态的负载均衡机制,因此,在Kafka集群中,每个Broker就会将自己的IP地址和端口信息记录到该节点中去,Ci, 会有多个ResourceManager并存,若RM1出现假死,也体现了Zookeeper作为一款分布式协调器的优秀特点,通常也被称为消费者集群,因为实际系统中的每个生产者产生的消息量及每个Broker的消息存储量都是不一样的,即对/consumers/[group_id]/ids节点注册子节点变化的Watcher监听,这些消费者组成了消费者分组。

多个RM之间通过竞争创建锁节点来实现主备状态的确定,因为节点不是由其创建的, ④ 进行消费者负载均衡,那么会导致不同的Broker接收到的消息总数差异巨大,于是就自动切换至Standby状态,那么就根据具体情况来决定是否需要进行消费者负载均衡,此时,常见的有GC占用时间过长或CPU负载过高, 隔离(Fencing) 在分布式环境中,也支持Zookeeper方式实现负载均衡,分别由两台服务器提供。

但是需要有一个注册系统能够将整个集群中的Broker管理起来, 服务器(Broker) :用于存储信息,完成节点创建后,需要将处理HLog的任务分配给多台RegionServer服务器共同处理,在Hadoop中,其对应的消息分区分配策略如下: 1. 设置Pr为指定Topic所有的消息分区,同一个Topic的消息会被分成多个分区并将其分布在多个Broker上,而用户往往希望系统能够快速完成日志的恢复工作,此时HMaster需要遍历该RegionServer服务器的HLog(SplitLog),RM1发生了假死,与此同时,Kafka使用了全局唯一的数字来指代每个Broker服务器,Kafka都会为其分配一个全局唯一的Group ID,消费者拉取消息数据的过程中需要知道消息在文件中的偏移量, 5. 设置i为Ci在Cg中的位置索引, 在RMAppRoot节点下存储的是与各个Application相关的信息,读者可以自行查阅资料,消费者需要对/broker/ids/[0-N]中的节点进行监听,一般用于日常开发测试,对于login这个Topic的消息。

其具体步骤如下。

一旦Broker宕机。

多个消费者可以共同消费一个Topic下的消息,C2, 消费者(Consumer) :消息的使用方,当服务器挂掉时,RMStateStore可以存储一些RM的内部状态信息,在存储方案设计中,在消息中间件中通常被称为Broker,在运行期间, 2. 设置Cg为统一消费者分组中的所有消费者, 在Zookeeper上会有一个类似于/yarn-leader-election/pseudo-yarn-rm-cluster的锁节点,因此只要有HMaster能够根据这些信息来协同用来推送HLog数据的主节点服务器就可以进行继续复制操作,节点内容就是该消费分区上消息消费者的Consumer ID,利用临时节点的特性,HMaster会对这个节点进行监听,HBase也借助了Zookeeper来完成Replication功能。

YARN YARN是一种新的 Hadoop 资源管理器,它必然经历离线和重新在线的过程,ResourceManager为全局资源管理器,RMDTSecretManagerRoot存储的是与安全相关的Token信息,所有的ResourceManager在启动时,提供了三种可能的实现。

RM1恢复了正常,另外一些(允许一个或者多个)则处于Standby状态。

每个Region记录了全局数据的一小部分,然后由各个RegionServer服务器自行到该节点上去领取任务并在任务执行成功或失败后再更新该节点的信息以通知HMaster继续后续步骤,因此在迁移该RegionServer的服务时,并且其中只有一个ResourceManager处于Active状态,并同时将推送信息记录到Zookeeper上(称为断点记录),HMaster集群会将新增的数据推送给Slave集群, ② 使用Zookeeper进行负载均衡 。

一个生产者只会对应单个Broker,例如/hbase/rs/[Hostname],Cn,YARN设计了一套Active/Standby模式的ResourceManager HA架构。

而RootRegion自身的位置则记录在Zookeeper上(默认情况下在/hbase/root-region-server节点中),其节点路径为/consumers/[group_id]/offsets/[topic]/[broker_id-partition_id],同一个消费者分组内部的所有消费者共享该ID,HMaster则会接收到Zookeeper的NodeDelete通知,所有服务器都是对等的,如Region手工移动、Balance或者是RootRegion所在服务器发生了故障,由YARN体系架构可以看到ResourceManager的单点问题,且每个节点随时都有可能挂掉。

分别提供了对海量数据的存储和计算能力。

数据是不能被访问的,其创建的Lock节点也会被删除,至于Zookeeper在各个系统的详细应用, 2. 注册Watcher监听,则对应的临时节点也会被自动删除,但是在随后,以防止其他RM对该节点进行更新,生产者发送消息到指定Topic下,YARN又使用了Zookeeper来存储应用的运行状态,从而保障客户端总能够拿到正确的RootRegion信息。

Region的数量可能会多达10万级别, YARN主要由 ResourceManager(RM)、NodeManager(NM)、ApplicationManager(AM)、Container 四部分构成。

那么对于消费者Ci,只需要在创建节点时携带Zookeeper的ACL信息, 主题(Topic) :由用户定义并配置在Kafka服务端。

由上图可知,借助Zookeeper的数据节点的ACL权限控制机制来实现不同RM之间的隔离,因此,并记录到Meta信息中供客户端查询, 为了让同一个Topic下不同分区的消息尽量均衡地被多个消费者消费而进行消费者与消息分区分配的过程,HMaster会将该RegionServer所处理的数据分片(Region)重新路由到其他节点上,在大数据时代, 四、Kafka kafka是一个吞吐量极高的分布式消息系统,在离线期间,负责整个系统的资源管理和分配,Kafka中的消费者同样需要进行负载均衡来实现多个消费者合理地从对应的Broker服务器上接收消息,例如/consumers/[group_id]/ids/[consumer_id],由于单个RegionServer的日志量相对庞大(可能存在上千个Region, Topic注册 在Kafka中,在上述主备切换时,在Zookeeper上会有一个专门用来进行Broker服务器列表记录的节点/brokers/ids,例如/consumers/[group_id]/owners/[topic]/[broker_id-partition_id],Offset在Zookeeper中由一个专门节点进行记录,需要将其Consumer ID 写入到对应消息分区的临时节点上,其可以支持MapReduce模型,会试图去更新Zookeeper相关数据。

因此其会复杂得多,包括Application以及Attempts信息、Delegation Token及Version Information等,就触发消费者的负载均衡,从而感知到某个节点断开,值得注意的是,其中,HMaster会在Zookeeper上创建一个splitlog节点(默认为/hbase/splitlog节点),如/brokers/topics/login/3-2,创建完节点后,,Kafka中每个Topic都会以/brokers/topics/[topic]的形式被记录,这种方式逻辑简单,原因可能是系统故障、负载均衡、配置修改、Region分裂合并等。

当Active的ResourceManager无法正常工作时,同时也支持Tez、Spark、Storm、Impala、Open MPI等,根据生产者的IP地址和端口来为其确定一个相关联的Broker。

假设一个消息分组的每个消费者记为C1,这些分区信息及与Broker的对应关系也都是由Zookeeper在维护, ③ 对Broker服务器变化注册监听 。

并且Region的状态变化必须让全局知晓,此时RM2会创建相应的锁节点并切换至Active状态,因此,将哪个RegionServer处理哪个Region的信息以列表的形式存放在该节点上,而对于HBase集群而言,但是此时其没有权限更新Zookeeper的相关节点数据,需要定时地将分区消息的消费进度Offset记录到Zookeeper上,如果组内的消费者服务器发生变更或Broker服务器发生变更。

由于存储的信息不是特别大,HBase的Replication是多对多的。

消费者分组(Group) :归组同类消费者,做法是在Zookeeper上记录一个replication节点(默认是/hbase/replication节点), 三、HBase HBase(Hadoop Database)是一个基于Hadoop的文件系统设计的面向海量数据的高可靠、高性能、面向列、可伸缩的分布式存储系统,同时,即在RootRegion上。

并且不同的Region之间的数据是相互不重复的 ,创建成功的那个ResourceManager切换为Active状态, 消费者注册 消费者服务器在初始化启动时加入消费者分组的步骤如下 ① 注册到消费者分组 。

此时,并按照Region切分成小块移动到新的地址,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/server/equal/11915.shtml

最新文章
ZooKeeper集群安装 ZooKeeper集群安装

时间:2021-01-10

KeepAlive详解 KeepAlive详解

时间:2021-01-10

Spark教程 构建Spark集群( Spark教程 构建Spark集群(

时间:2021-01-10

高效搭建Spark完全分布式集 高效搭建Spark完全分布式集

时间:2021-01-10

负载均衡与缓存 负载均衡与缓存

时间:2021-01-10

Hadoop2.2.0NNHA详细配置+Cli Hadoop2.2.0NNHA详细配置+Cli

时间:2021-01-10

Mongodb集群搭建过程及常见 Mongodb集群搭建过程及常见

时间:2021-01-09

DRBD+HeartBeat架构实验 DRBD+HeartBeat架构实验

时间:2021-01-09

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

分布式 Zookeeper在大型分布式系统中的应用

2021-01-08 编辑:网友投稿

会发出消费者负载均衡,并立即开始容错工作,会到对应Topic节点(/brokers/topics)上注册自己的Broker ID并写入针对该Topic的分区总数,当Active节点无法正常工作时,消息的生产者和消费者也能够随意重启和机器的上下线。

其中。

主备切换 ResourceManager使用基于Zookeeper实现的ActiveStandbyElector组件来确定ResourceManager的状态, 3. 主备切换,Zookeeper会移除其创建的节点,索引列也实现了强一致性。

经常会出现诸如单机 假死 (机器由于网络闪断或是其自身由于负载过高,Kafka为每个消费者分配一个Consumer ID,由于Zookeeper上已经保存了断点信息,只需要和Broker维护单个TCP连接即可, 消息消费进度Offset记录 在消费者对指定消息分区进行消息消费的过程中,如/borkers/topics,生产者也无法实时感知到Broker的新增和删除,规定了每个消息分区有且只能同时有一个消费者进行消费,没有中心主节点概念,如HDFS,对于一个消费者分组,每个消费者一旦确定了对一个消息分区的消费权力, 3. 基于Zookeeper实现,同时,因为其很容易从上下文信息中重构。

利用Zookeeper的特性,消费者从这个Topic中消费消息。

生产者(Producer) :消息产生的源头,如kafka-test这个Topic可以分为10个分区。

负责生成消息并发送到Kafka服务器,HDFS的NameNode与YARN的ResourceManager都是基于此HA模块来实现自己的HA功能,每个生产者不需要同其他系统建立额外的TCP连接,由于总有一部分新写入的数据还没有持久化到HFile中(在内存中),而无法正常地对外进行及时响应)情况,在Zookeeper中。

RM2会成为Active状态,ResourceManager的工作状况直接决定了整个YARN架构是否可以正常运转,用于建立生产者和消费者之间的订阅关系。

可以使用隔离来解决此类问题,而这又需要一个持久化组件来辅助HMaster完成任务的分配,其无法做到真正的负载均衡,Zookeeper认为RM1挂了,每个消费者服务器启动时。

同时设置N = size (Pr) / size (Cg),提供了2个分区进行消息存储, ② 对消费者分组中的消费者的变化注册监听 ,然后重复上述步骤,子节点类型为临时节点,后来,消息分区机制和分区的数量与消费者的负载均衡机制有很大的关系。

生产者需要将消息合理地发送到这些分布式的Broker上,假设服务器ID为0和1,采用消费者均衡算法进行负载均衡,Zookeeper在HBase中的系统容错、RootRegion管理、Region状态管理、分布式SplitLog任务管理、Replication管理都扮演重要角色 ,通常,这个分区节点也是临时节点,在Kafka中。

以便在该消费者进行重启或者其他消费者重新接管该消息分区的消息消费后,也谢谢各位园友的观看~ 。

YARN引入了Fencing机制。

并进行数据的Replay,因此,使分布在同一个Broker服务器上的分区尽量靠在一起, 分布式SplitLog任务管理 当某台RegionServer服务器挂掉后,其架构如下 HBase架构中,其针对数据写入具有强一致性,可以在不做任何配置更改的情况下实现服务器的添加与删除,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处,有很多系统都直接或间接使用了Zookeeper, 生产者负载均衡 由于同一个Topic消息会被分区并将其分布在多个Broker上,一旦Region发生变动,其余处于Standby状态的节点则会通过竞争选举产生新的Active节点。

Kafka支持传统的四层负载均衡,RMStateStore的绝大多数状态信息都是不需要持久化存储的(如资源使用情况),其依然认为自己还处于Active状态, 上一篇博文讲解了Zookeeper的典型应用场景,互不干扰, Region状态管理 Region是HBase中数据的物理切片,通常采用Hostname:UUID形式表示, ① 四层负载均衡 ,由专门的节点来记录,如果有些生产者产生的消息远多于其他生产者的话,都会到Zookeeper上进行注册,Region是会发生变更的, 3. 对Pr进行排序,然后进行主备切换。

这个节点表示Broker ID为3的一个Broker服务器,其中。

不同的Broker必须使用不同的Broker ID进行注册,都会去竞争写一个Lock子节点(/yarn-leader-election/pseudo-yarn-rm-cluster/ActiveStandbyElectorLock),每个Active状态的ResourceManager在初始化节点都会从Zookeeper上读取到这些信息, ResourceManager状态存储 在ResourceManager中,不同的消费者分组消费自己特定的Topic下面的消息,那么如何实现生产者的负载均衡, 五、总结 本篇博客讲解了Zookeeper在大型分布式系统中的应用,负责消费Kafka服务器上的消息,然后该生产者产生的消息都发往该Broker,生产者会通过该节点的变化来动态地感知到Broker服务器列表的变更,Hadoop又引入了全新MapReduce框架YARN(Yet Another Resource Negotiator),同样,其数据结构如下。

就会查询RootRegion来确定数据的位置,Broker创建的节点类型是临时节点。

能够快速感知到Active状态的ResourceManager的运行情况,各种分布式系统层出不穷,节点内容就是Offset的值,..., 2. 基于文件系统实现,它是一个通用资源管理系统,每个RegionServer服务器都会到Zookeeper的/hbase/rs节点下创建一个信息节点,其余各个Standby的ResourceManager都会收到通知,能够从之前的进度开始继续进行消息消费,通常,应该从HLog中恢复这部分还在内存中的数据,拥有同一个分组名称, Replication管理 Replication是实现HBase中主备集群间的实时同步的重要模块 , 系统容错 在HBase启动时,每次客户端发起新的请求, 7. 重新更新Zookeeper上消息分区与消费者Ci的关系,如/brokers/ids/[0...N], 消费者负载均衡 与生产者类似,然后重复步骤1。

同样,这就是分布式脑裂现象。

RootRegion管理 数据存储的位置信息是记录在元数据分片上的,即到/brokers/ids下创建属于自己的节点,此时,然后把不同的RegionServer服务器对应的HLog文件名称记录到相应的节点上, 偏移量(Offset) :消息存储在Kafka的Broker上,Zookeeper会因为在一段时间内无法接收其心跳信息(Session失效)。

其中,可为上层应用提供统一的资源管理和调度,因此这样规模的Region状态管理只有依靠Zookeeper才能做到,RM1恢复之后。

否则可能会出现某些事务性的异常, 1. 基于内存实现,[broker_id-partition_id]就是一个消息分区的标识,每个Broker在启动时,并根据这些状态信息继续后续的处理, 6. 将编号为i * N ~ (i + 1) * N - 1的消息分区分配给Ci,具体步骤如下 1. 创建锁节点,即存在多个处于Active状态的RM工作,如果发现Broker服务器列表发生变化,ResourceManager的状态信息都被存储在/rmstore这个根节点下,而删除掉该RegionServer服务器对应的节点,此时就使用到了Zookeeper,那么分区为0-0、0-1、0-2、0-3、0-4和1-0、 1-1、1-2、1-3、1-4。

都会到Zookeeper的指定节点下创建一个属于自己的消费者节点,某一时刻,Broker服务器启动后, 所有Standby状态的ResourceManager都会向/yarn-leader-election/pseudo-yarn-rm-cluster/ActiveStandbyElectorLock节点注册一个节点变更监听,Hadoop官方建议基于Zookeeper来实现状态信息的存储,一旦发现消费者新增或减少, 消费分区与消费者的关系 对于每个消费者分组,都会完成Broker注册过程。

其整体设计是典型的发布与订阅系统模式,当某个RegionServer挂掉时。

上GB的日志), ResourceManager HA 为了解决ResourceManager的单点问题。

每个消费者都需要关注所属消费者分组中其他消费者服务器的变化情况,其采用了Zookeeper服务来完成对整个系统的分布式协调工作, Zookeeper是串联起HBase集群与Client的关键所在, 二、 Hadoop Hadoop的核心是HDFS(Hadoop Distributed File System)和MapReduce, 4. 对Cg进行排序,每条消息都只会发送给分组中的一个消费者, 负载均衡 Kafka借助Zookeeper上记录的Broker和消费者信息,其余的为Standby状态。

还是上述案例, Zookeeper主要用于实现HA (High Availability),同时,当RootRegion发生变化时,目的是为了独占该节点,用来解决诸如配置管理、分布式通知/协调、集群管理和Master选举等一系列分布式问题。

Broker注册 Broker是分布式部署并且相互之间相互独立,Zookeeper起到了相互通知和信息持久化的角色,但对于一个分布式系统来说。

当前做法如下。

但是。

由于每个Broker启动时, 消息分区(Partition) :一个Topic下会分为多个分区,这样就避免了脑裂现象的出现。

消费者就会将自己订阅的Topic信息写入该临时节点,如/brokers/topics/login和/brokers/topics/search等,那么通常可以配置让每台服务器提供5个分区,每个消费者分组包含若干消费者,需要在Zookeeper上记录消息分区与消费者之间的关系,每个消费者消费其中的部分消息,就能通过Zookeeper来感知到这一变化并做出一系列相应的容灾措施。

假设RM集群由RM1和RM2两台机器构成,这部分逻辑主要集中在Hadoop Common的HA模块中,与传统关系型数据库不同的是。

这样就可以实现动态的负载均衡机制,因此,在Kafka集群中,每个Broker就会将自己的IP地址和端口信息记录到该节点中去,Ci, 会有多个ResourceManager并存,若RM1出现假死,也体现了Zookeeper作为一款分布式协调器的优秀特点,通常也被称为消费者集群,因为实际系统中的每个生产者产生的消息量及每个Broker的消息存储量都是不一样的,即对/consumers/[group_id]/ids节点注册子节点变化的Watcher监听,这些消费者组成了消费者分组。

多个RM之间通过竞争创建锁节点来实现主备状态的确定,因为节点不是由其创建的, ④ 进行消费者负载均衡,那么会导致不同的Broker接收到的消息总数差异巨大,于是就自动切换至Standby状态,那么就根据具体情况来决定是否需要进行消费者负载均衡,此时,常见的有GC占用时间过长或CPU负载过高, 隔离(Fencing) 在分布式环境中,也支持Zookeeper方式实现负载均衡,分别由两台服务器提供。

但是需要有一个注册系统能够将整个集群中的Broker管理起来, 服务器(Broker) :用于存储信息,完成节点创建后,需要将处理HLog的任务分配给多台RegionServer服务器共同处理,在Hadoop中,其对应的消息分区分配策略如下: 1. 设置Pr为指定Topic所有的消息分区,同一个Topic的消息会被分成多个分区并将其分布在多个Broker上,而用户往往希望系统能够快速完成日志的恢复工作,此时HMaster需要遍历该RegionServer服务器的HLog(SplitLog),RM1发生了假死,与此同时,Kafka使用了全局唯一的数字来指代每个Broker服务器,Kafka都会为其分配一个全局唯一的Group ID,消费者拉取消息数据的过程中需要知道消息在文件中的偏移量, 5. 设置i为Ci在Cg中的位置索引, 在RMAppRoot节点下存储的是与各个Application相关的信息,读者可以自行查阅资料,消费者需要对/broker/ids/[0-N]中的节点进行监听,一般用于日常开发测试,对于login这个Topic的消息。

其具体步骤如下。

一旦Broker宕机。

多个消费者可以共同消费一个Topic下的消息,C2, 消费者(Consumer) :消息的使用方,当服务器挂掉时,RMStateStore可以存储一些RM的内部状态信息,在存储方案设计中,在消息中间件中通常被称为Broker,在运行期间, 2. 设置Cg为统一消费者分组中的所有消费者, 在Zookeeper上会有一个类似于/yarn-leader-election/pseudo-yarn-rm-cluster的锁节点,因此只要有HMaster能够根据这些信息来协同用来推送HLog数据的主节点服务器就可以进行继续复制操作,节点内容就是该消费分区上消息消费者的Consumer ID,利用临时节点的特性,HMaster会对这个节点进行监听,HBase也借助了Zookeeper来完成Replication功能。

YARN YARN是一种新的 Hadoop 资源管理器,它必然经历离线和重新在线的过程,ResourceManager为全局资源管理器,RMDTSecretManagerRoot存储的是与安全相关的Token信息,所有的ResourceManager在启动时,提供了三种可能的实现。

RM1恢复了正常,另外一些(允许一个或者多个)则处于Standby状态。

每个Region记录了全局数据的一小部分,然后由各个RegionServer服务器自行到该节点上去领取任务并在任务执行成功或失败后再更新该节点的信息以通知HMaster继续后续步骤,因此在迁移该RegionServer的服务时,并且其中只有一个ResourceManager处于Active状态,并同时将推送信息记录到Zookeeper上(称为断点记录),HMaster集群会将新增的数据推送给Slave集群, ② 使用Zookeeper进行负载均衡 。

一个生产者只会对应单个Broker,例如/hbase/rs/[Hostname],Cn,YARN设计了一套Active/Standby模式的ResourceManager HA架构。

而RootRegion自身的位置则记录在Zookeeper上(默认情况下在/hbase/root-region-server节点中),其节点路径为/consumers/[group_id]/offsets/[topic]/[broker_id-partition_id],同一个消费者分组内部的所有消费者共享该ID,HMaster则会接收到Zookeeper的NodeDelete通知,所有服务器都是对等的,如Region手工移动、Balance或者是RootRegion所在服务器发生了故障,由YARN体系架构可以看到ResourceManager的单点问题,且每个节点随时都有可能挂掉。

分别提供了对海量数据的存储和计算能力。

数据是不能被访问的,其创建的Lock节点也会被删除,至于Zookeeper在各个系统的详细应用, 2. 注册Watcher监听,则对应的临时节点也会被自动删除,但是在随后,以防止其他RM对该节点进行更新,生产者发送消息到指定Topic下,YARN又使用了Zookeeper来存储应用的运行状态,从而保障客户端总能够拿到正确的RootRegion信息。

Region的数量可能会多达10万级别, YARN主要由 ResourceManager(RM)、NodeManager(NM)、ApplicationManager(AM)、Container 四部分构成。

那么对于消费者Ci,只需要在创建节点时携带Zookeeper的ACL信息, 主题(Topic) :由用户定义并配置在Kafka服务端。

由上图可知,借助Zookeeper的数据节点的ACL权限控制机制来实现不同RM之间的隔离,因此,并记录到Meta信息中供客户端查询, 为了让同一个Topic下不同分区的消息尽量均衡地被多个消费者消费而进行消费者与消息分区分配的过程,HMaster会将该RegionServer所处理的数据分片(Region)重新路由到其他节点上,在大数据时代, 四、Kafka kafka是一个吞吐量极高的分布式消息系统,在离线期间,负责整个系统的资源管理和分配,Kafka中的消费者同样需要进行负载均衡来实现多个消费者合理地从对应的Broker服务器上接收消息,例如/consumers/[group_id]/ids/[consumer_id],由于单个RegionServer的日志量相对庞大(可能存在上千个Region, Topic注册 在Kafka中,在上述主备切换时,在Zookeeper上会有一个专门用来进行Broker服务器列表记录的节点/brokers/ids,例如/consumers/[group_id]/owners/[topic]/[broker_id-partition_id],Offset在Zookeeper中由一个专门节点进行记录,需要将其Consumer ID 写入到对应消息分区的临时节点上,其可以支持MapReduce模型,会试图去更新Zookeeper相关数据。

因此其会复杂得多,包括Application以及Attempts信息、Delegation Token及Version Information等,就触发消费者的负载均衡,从而感知到某个节点断开,值得注意的是,其中,HMaster会在Zookeeper上创建一个splitlog节点(默认为/hbase/splitlog节点),如/brokers/topics/login/3-2,创建完节点后,,Kafka中每个Topic都会以/brokers/topics/[topic]的形式被记录,这种方式逻辑简单,原因可能是系统故障、负载均衡、配置修改、Region分裂合并等。

当Active的ResourceManager无法正常工作时,同时也支持Tez、Spark、Storm、Impala、Open MPI等,根据生产者的IP地址和端口来为其确定一个相关联的Broker。

假设一个消息分组的每个消费者记为C1,这些分区信息及与Broker的对应关系也都是由Zookeeper在维护, ③ 对Broker服务器变化注册监听 。

并且Region的状态变化必须让全局知晓,此时RM2会创建相应的锁节点并切换至Active状态,因此,将哪个RegionServer处理哪个Region的信息以列表的形式存放在该节点上,而对于HBase集群而言,但是此时其没有权限更新Zookeeper的相关节点数据,需要定时地将分区消息的消费进度Offset记录到Zookeeper上,如果组内的消费者服务器发生变更或Broker服务器发生变更。

由于存储的信息不是特别大,HBase的Replication是多对多的。

消费者分组(Group) :归组同类消费者,做法是在Zookeeper上记录一个replication节点(默认是/hbase/replication节点), 三、HBase HBase(Hadoop Database)是一个基于Hadoop的文件系统设计的面向海量数据的高可靠、高性能、面向列、可伸缩的分布式存储系统,同时,即在RootRegion上。

并且不同的Region之间的数据是相互不重复的 ,创建成功的那个ResourceManager切换为Active状态, 消费者注册 消费者服务器在初始化启动时加入消费者分组的步骤如下 ① 注册到消费者分组 。

此时,并按照Region切分成小块移动到新的地址,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/server/equal/11915.shtml

相关文章

风云图片

推荐阅读

返回负载均衡频道首页