美文网首页
大数据资源调度Yarn解析

大数据资源调度Yarn解析

作者: 码农高飞 | 来源:发表于2023-03-09 10:01 被阅读0次

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

Yarn基本架构

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



ResourceManager主要作用:

  • 处理客户瑞请求。
  • 监控NodeManager。
  • 启动或监控ApplicationMaster。
  • 资源的分配与调度。

NodeManager主要作用:

  • 管理单个节点上的资源。
  • 处理来自ResourceManagerE的命令。
  • 处理来自ApplicationMaster的命令。

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:

  • 按照到达时间顺序,先到先服务。

容量调度器:

  • 支持多队列,每个队列可配置一定资源,每个队列又采用FIFO调度策略。
  • 为防止独占队列中资源,对同一用户提交的作业所占资源量进行了限定。
  • 计算每个队列中正在运行的任务数与应该分得的计算资源之间的比值,选择该比值最小的队列(最闲的)。
  • 按照作业优先级和提交时间顺序,同时考虑用户资源量限制和内存限制对队列内任务排序。

公平调度器:

  • 同队列所有任务共享资源,在时间尺度上获得公平的资源。
  • 支持多队列多作业,每个队列可以单独配置。
  • 同一队列的作业按照其优先级分享整个队列的资源,并发执行。
  • 每个作业可以设置最小资源值,调度器会保证作业获得其以上的资源。

总结

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

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

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

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

相关文章

  • Hadoop Yarn 资源调度器解析

    Hadoop Yarn 资源调度器解析篇 Yarn资源调度器简介 资源调度器是Yarn中最核心的组件之一,他是Re...

  • yarn之资源调度器

    1: yarn 资源调度的定义 2: yarn 资源调度的种类 在Yarn中有三种调度器可以选择:FIFO Sch...

  • Hadoop和Yarn中的任务调度算法和任务队列

    参考:Yarn 资源调度策略hadoop的三种任务调度的原理 1 Yarn 资源调度策略 1)队列调度:FIFO ...

  • Hadoop 面试题

    hadoop组成? MapReduce 计算Yarn 资源调度hdfs 数据存储Common 辅助工具 如...

  • Yarn与MapReduce

    --YARN 资源调度框架 YARN架构 1个ResourceManager + N个NodeManager ...

  • yarn资源调度

    单队列组织方式:FIFOScheduler 将所有的应用程序放到一个队列中。局限性明显:资源利用率低,无法交叉运行...

  • 资源调度YARN

    存在问题: 单点故障 ,不容易拓展 共享 spark 等业务。只能跑 mapReduce 作业 Yarn 产生的...

  • 资源调度YARN

    1.x master/slave: jobTracker/taskTracker JobTrack: 单点、压力大...

  • MR on Yarn / Spark on Yarn/

    Hadoop Yarn的好处 资源管理和任务调度统一 公司资源统一分配 任务多种模式调度 MR ON YARN 流...

  • yarn

    1.yarn 资源调度 资源隔离 弹性伸缩 容灾容错

网友评论

      本文标题:大数据资源调度Yarn解析

      本文链接:https://www.haomeiwen.com/subject/bovnldtx.html