09 | 为什么我们管Yarn叫作资源调度框架?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
Yarn作为Hadoop的资源调度框架,是Hadoop从单一大数据计算引擎发展为完整大数据平台的关键组成部分。文章介绍了Yarn的发展历程和架构原理,以及其与MapReduce的关系。Yarn的架构包括资源管理器和节点管理器,通过容器进行资源分配和管理。文章还解释了为什么HDFS是系统而MapReduce和Yarn是框架,强调了框架设计原则中的依赖倒转原则。总结指出,虽然普通大数据开发者可能不需要直接编写Yarn相关程序,但理解Yarn的工作原理对于正确使用大数据技术和理解云计算的资源管理至关重要。 Yarn的发展历程和架构原理,以及其与MapReduce的关系。 Yarn的架构包括资源管理器和节点管理器,通过容器进行资源分配和管理。文章还解释了为什么HDFS是系统而MapReduce和Yarn是框架,强调了框架设计原则中的依赖倒转原则。
《从 0 开始学大数据》,新⼈⾸单¥68
全部留言(63)
- 最新
- 精选
- 落叶飞逝的恋实际项目开发中,要做到依赖倒置的方法,一般就是抽象出相应的接口的方法,不依赖具体。面向接口编程。
作者回复: 是的,但是更重要的是接口是高层需求的抽象,还是底层实现的抽象。这是依赖倒置的关键,面向接口本身并不能保证依赖倒置原则,否则和接口隔离原则没有区别。
2018-11-1787 - hua168看完几期感觉没有什么能难得住大神你的,回答问题在您那里感觉都很简单……我一般学习是先找视频看一下,照着截图,练习,然后去官网看一下说明文档,看更新了哪些知识。照视频学习又要截图,感觉很慢,很费时,看官方文档又很难深入,能否请教一下自学如果能深入,是我方法不对吗?有很多问题官网都没答案的啊,google不少也搜索不出来……运维类学的东西很多,精通感觉比较难……把原理东西,理解好,慢慢锻炼能不能达到您一半的水平呢?😂
作者回复: 理解原理后倒推它应该是什么样,训练自己从设计者角度分析问题,而不是一味被动学习。 也是这个专栏想达到的目的。
2018-11-1728 - 小千sql语言是不是也是依赖倒转原则?不同的数据库都要支持sql语言规范,(很多)sql语句语句都可以在不同的数据库执行。
作者回复: 依赖倒转一般是指两个实现之间的依赖关系倒转。 这里上下文的两个实现应该分别是应用程序和数据库,应用程序依赖SQL,数据库实现SQL。 但是,SQL作为规范是数据库制定的规范,是底层规范,而不是应用程序制定的,所以这种情况一般不认为是依赖倒转。
2018-11-2224 - 生活在别处老师,资源调度和计算调度的区别是什么?
作者回复: 资源调度如Yarn,管理的是集群中的计算资源,如CPU、内存的分配和回收。 计算调度应该是计算任务调度,如map和reduce的任务或者spark的任务,应该在哪个container启动,启动前后顺序管理等。
2019-02-1923 - 老男孩突然明白了,这么多年都是错误的观点。我之前的所谓分层展现层,服务层,持久层其实都是上层依赖下层的抽象,不是依赖倒置。
作者回复: 是的👍🏻
2018-11-1922 - 纯洁的憎恶MapReduce框架遵循把程序发送到数据存储位置运行的原则。而资源调度框架的任务是动态调配计算资源(内存+cpu),那么就很有可能出现本地数据需要发送到其他节点计算的情况,于是就会有网络传输大量数据的现象,这是否与程序在数据存储节点运行的初衷相悖呢?我这么理解对么?
作者回复: 有可能。 不用yarn也会有这个问题。 网络效率这几年提升很快,这个问题不严重。
2018-11-1817 - 席席李老师。框架:指的是能兼容一类底层问题的技术,这么理解可以嘛?Spring 的依赖注入指的是框架嘛?
作者回复: 框架是对某一类架构方案可复用的设计与实现。所有的 Web 应用都需要监听 HTTP 端口,也需要处理请求参数,这些功能不应该在每个 Web 应用中都被重复开发,而是应该以通用组件的形式被复用。但并不是所有可被复用的组件都被称作框架,框架通常规定了一个软件的主体结构,可以支撑起软件的整体或者局部的架构形式。比如说,Tomcat 完成了 Web 应用请求响应的主体流程,我们只需要开发 Servlet,完成请求处理逻辑,构造响应对象就可以了,所以 Tomcat 是一个框架。还有一类可复用的组件不控制软件的主体流程,也不支撑软件的整体架构,比如 Log4J 提供了一个可复用的日志输出功能,但是,日志输出功能不是软件的主体结构,所以我们通常不称 Log4J 为框架,而称其为工具。 https://time.geekbang.org/column/article/183371
2020-05-1815 - Jowin请教老师,关于mapreduce和yarn的结合,是不是mapreduce ApplicationMaster 向资源管理器申请计算资源时可以指定目标节点(数据分片所在节点),而如果系统资源能够满足,就会把mapreduce计算任务分发到指定的服务器上。如果资源不允许,比如目标节点非常繁忙,这时部分mapreduce计算任务可能会分配另外的服务器(数据分片不在本地)?也就是说,yarn对资源调度是尽力而为,不保值一定满足ApplicationMaster的要求,这个理解正确么?
作者回复: 是的
2018-12-01210 - Li Shunduo请问Yarn里的容器和docker这一类容器有什么关系吗?
作者回复: 没有关系。两种容器设计思路差不多,docker更通用。
2018-11-1710 - 涤生有没有可能存在一种情况就是,在分布式集群中,DataNode存了10G的数据,但是该节点服务器计算资源很少了(假设系统中已经有其他大数据应用在跑),其他DataNode也是存了10G数据,但是其他阶段计算资源都很充足,那最后是不是就导致了整个reduce操作都要等当前的map操作结束了才能执行,大大降低了整个程序的计算效率。
作者回复: map 和 reduce任务分配优先分配处理本机数据,如果本机没有计算资源了,会分配到其他机器上,不会等待本机资源释放后在分配。 对于已经分配的任务,如果本机计算慢,会在其他机器启动备份task,也就是同一个任务会在多个机器同时执行,使用先执行完的任务结果进行后续计算。
2019-11-038