Yarn(分布式资源管理器)和Zookeeper(分布式协作服务)区别

Zookeeper

Zookeeper是一个分布式协调服务(Coordination),一个leader,多个follower组成的集群,就是为用户的分布式应用程序提供协调服务。
Zookeeper是为别的分布式程序服务的。Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务等。

Yarn(分布式资源管理器)和Zookeeper(分布式协作服务)区别_第1张图片

 

Yarn

YARN的目标就是实现“一个集群多个框架”,即在一个集群上部署一个统一的资源调度管理框架YARN,在YARN之上可以部署其他各种计算框架。由YARN为这些计算框架提供统一的资源调度管理服务,并且能够根据各种计算框架的负载需求,调整各自占用的资源,实现集群资源共享和资源弹性收缩。

可以实现一个集群上的不同应用负载混搭,有效提高了集群的利用率。

不同计算框架可以共享底层存储,避免了数据集跨集群移动。

Yarn(分布式资源管理器)和Zookeeper(分布式协作服务)区别_第2张图片

上图中的ResourceTrackeServer、ApplicationMasterService 、ClientRMServer是ResourceManager中处理上述功能的组件。

1、ResourceManager基本职能

ResourceManager基本职能概括起来就以下几方面:

  • 与客户端(Application Client)进行交互,处理来自于客户端的请求,如查询应用的运行情况等。

  • 启动和管理各个应用的ApplicationMaster,并且为ApplicationMaster申请第一个Container用于启动和在它运行失败时将它重新启动。接收来自ApplicationMaster的资源申请,为其进行分配。

  • 管理NodeManager,接收来自NodeManager的资源和节点健康情况汇报,并向NodeManager下达管理资源命令,例如kill掉某个container。

举例说明

在一个分布式系统上。现在有个事要办。我们要找这个系统办这个事,就要通知yarn。打个比方,yarn的master node看看这个系统里有很多node,看看谁有空,谁有能力(cpu、内存、等)来干这个事。然后把任务分配给合适的node来办这个事。    这个时候系统面临一个危险。那就是在分布式系统中,failure成为常态。yarn master node管理着很多个node,管理着它们哪一个出问题了。危险在于master自己坏了怎么办。  常见的分布式系统出问题的解决办法是我们总保持有一个待命的,到需要的时候顶上。yarn里的Resource
Manager也有待命的。当一个Resource
Manager坏了,或者需要升级更新,另一个Resource
Manager要接手。这时候麻烦来了,新的Resource
Manager怎么知道哪个任务已经完成,哪个还没有,用户想执行的任务到什么状态了,一个任务所必须的先决条件任务是否已经完成。  这个情形中,Yarn自己成了Single
point of failure。   新启动的Resource
Manager成了这个分布式系统的另外一个大脑。两个大脑管理同一套资源,就可能有不一致的地方。 要解决这个问题,我们就要保存Yarn自身的各种状态,比如都收到了哪些任务,各个任务都执行到了什么状态,收到了哪些安全许可。这些东西保存在Resource
Manager State Store里。   Resource
Manager State Store自己怎么管理呢。好几种办法,存在内存,存在文件,或者另外一个更容易的办法就是Zookeeper了。    Zookeeper控制着什么时候,谁可以读写这个Resource
Manager State Store。Zookeeper自己也是个cluster,它也是Fault
Tolerance(容错)的,我们就省去了自己管理这个资源的各种麻烦。 Zookeeper保存着它所管理的系统的各种状态,可以保证任何时候都只有一个版本的系统状态。即便是Yarn的Master坏了,重启了,正在升级,也不会出现冲突。所以说起来,Yarn和Zookeeper的功能是不一样的,对于一套完整的系统,两者都需要使用。

总结

YARN相当于政府,负责管理机器资源的分配,有困难找政府,政府安排人力物力来解决你的问题。这个才是你说的管理节点。

Zookeeper相当于立法委员会,目标是提供权威的信息给这个国家所有的人。Zookeeper关注的主要是信息的一致性,管理一些需要在所有人心中保持一致的信息。

你可能感兴趣的:(Hadoop)