Zookeeper和YARN的主要有两点区别:一、定位不同;二、作用不同;yarn 是为了提高资源利用率,也就是多类程序的资源分配。而zookeeper是分布式程序的协调服务,可以说是某一类程序。
一、定位不同
Yarn是分布式资源管理器,Zookeeper是分布式协作服务。
YARN是实现“一个集群多个框架”,即在一个集群上部署一个统一的资源调度管理框架YARN,在YARN之上可以部署其他各种计算框架。由YARN为这些计算框架提供统一的资源调度管理服务,并且能够根据各种计算框架的负载需求,调整各自占用的资源,实现集群资源共享和资源弹性收缩。
Zookeeper是一个分布式协调服务(Coordination),一个leader,多个follower组成的集群,就是为用户的分布式应用程序提供协调服务。
二、作用不同
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注销并关闭自己。
文章标题:Zookeeper和YARN的区别是什么,发布者:Yang,转载请注明出处:https://worktile.com/kb/p/47300