zookeeper和YARN的区别是什么

小编 509

Zookeeper和YARN的主要有两点区别:1、定位不同;2、作用不同;yarn 是为了提高资源利用率,也就是多类程序的资源分配。而zookeeper是分布式程序的协调服务,可以说是某一类程序。

1、定位不同

首先要搞清楚Zookeeper和YARN不同点就要知道两者本质上的区别,Yarn是分布式资源管理器,Zookeeper是分布式协作服务。

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

Zookeeper是一个分布式协调服务(Coordination),一个leader,多个follower组成的集群,就是为用户的分布式应用程序提供协调服务。

2、作用不同

Yarn主要作用是在每次接收到请求后,会查看当下的各个子节点的状况,统筹出运算资源的调度方案来保证任务可以顺利执行。通常来说,Yarn所调度的资源常常包括磁盘空间的资源,内存的资源和通讯带宽的资源等。可以实现一个集群上的不同应用负载混搭,有效提高了集群的利用率。不同计算框架可以共享底层存储,避免了数据集跨集群移动。

ZooKeeper的价值就在于实现了基于分布式的统一化配置管理,命名服务,状态同步等。在ZooKeeper的体系下,会使用一种树状的文件存储系统,这一套系统强调在各个子节点下的文件目录结构,文件名称以及文件内容都是相同的,而ZooKeeper会通过其内部机制,保证在发送增删改等操作时,各个子节点会同步操作。

延伸阅读

ZooKeeper的基本运转流程:

1、选举Leader。

2、同步数据。

3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。

4、Leader要具有较高的执行ID,类似root权限。

5、集群中大多数的机器得到响应并接受选出的Leader。

YARN的工作流程:

1、用户向YARN中提交应用程序

2、ResourceManager为该应用程序找到一个可用的NodeManager 并分配一个Container,然后在这个Container中启动应用程序的ApplicationMaster。

3、ApplicationMaster向ResourceManager进行注册,这样用户就可以通过ResourceManager查看应用程序的运行状态并对任务进行监控。

4、ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager 申请和领取资源。

5、ApplicationMaster申请到资源后与对应的NodeManager通信,要求他启动Container并为任务设置好运行环境。

6、应用程序的任务开始在启动的Container中运行,各个任务向ApplicationMaster汇报自己的状态和进度,以便ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。

7、应用在运行的过程中,客户端通过轮询的方式主动与ApplicationMaster通信以获得应用的运行状态、执行进度等信息

8、应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部