大数据资源调度Yarn解析

2023-03-09  本文已影响0人  码农高飞

今天来介绍下资源调度Yarn,Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。

Yarn基本架构

Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。



ResourceManager主要作用:

NodeManager主要作用:

ApplicationMaster主要作用:

Container:是YARN中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。

Yarn工作机制

  1. MapReduce程序提交到客户端所在的节点。
  2. YarnRunner向ResourceManager申请一个Application。
  3. ResourceManager将该应用程序的资源路径返回给YarnRunner。
  4. 该程序将运行所需资源提交到HDFS上。
  5. 程序资源提交完毕后,申请运行mrAppMaster。
  6. ResourceManager将用户的请求初始化成一个Task。
  7. 其中一个NodeManager领取到Task任务。
  8. 该NodeManager创建容器Container,并产生mrAppMaster。
  9. Container从HDFS上拷贝资源到本地。
  10. mrAppMaster向ResourceManager申请运行MapTask资源。
  11. ResourceManager将运行MapTask任务分配给另外两个NodeManager,这两个NodeManager分别领取任务并创建容器。
  12. mrAppMaster向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。
  13. mrAppMaster等待所有MapTask运行完毕后,向ResourceManager申请容器,运行ReduceTask。
  14. ReduceTask向MapTask获取相应分区的数据。
  15. 程序运行完毕后,mrAppMaster会向ResourceManager申请注销自己。

资源调度器

Hadoop的调度器有三种,FIFO、Capacity Scheduler和Fair Scheduler。Hadoop3.x默认使用的资源调度器就是容量调度器Capacity Scheduler。
可在配置文件中指定使用哪个调度器。

<property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>

FIFO:

容量调度器:

公平调度器:

总结

Yarn负责的就是资源的调度,内容不是很多,重点是要能说出Yarn的工作机制,还有调度器的种类和彼此的区别。

写到这里,大数据的组件Hadoop算是告一段落了。结合前几篇介绍Hadoop的文章,Hadoop的组成:存储的HDFS、计算的MapReduce、资源调度的Yarn,都一一介绍完毕。当然单是会Hadoop还不能胜任大数据开发的工作,还需要编程语言java和sql的功底,其次还有一些大数据场景下的组件也需要掌握,比如kafka、spark、flink、clickhouse、hbase、redis、flume、doris等组件。这些有的是负责数据采集,有的是负责数据存储,还有的负责数据的处理,具体用哪个来做要看公司的需求,每个公司的组件未必都是一成不变的,但万变不离其宗,掌握这些后就可以做大数据开发了。

后面会继续更新其他的大数据组件和技术,另外面试题也在整理中,感兴趣的小伙伴可以关注一下。

以上就是今天的内容分享,下篇见。

上一篇 下一篇

猜你喜欢

热点阅读