Yarn和 Zookeeper之间是什么关系,都是管理节点,那他们的应用场景有何区别?

Zookeeper和Yarn是一起工作的,它们一起管理资源。 举例说明。在一个分布式系统上。现在有个事要办。我们要找这个系统办这个事,就要通知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的功能是不一样的,对于一套完整的系统,两者都需要使用。

作者:tecmz
链接:https://www.jianshu.com/p/7fa515425afc
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/qq_26450889/article/details/88790404