首页 > 其他分享 >【博学谷学习记录】超强总结,用心分享 | yarn的执行流程

【博学谷学习记录】超强总结,用心分享 | yarn的执行流程

时间:2023-06-01 10:13:38浏览次数:56  
标签:Container 博学 ApplicationMaster yarn 任务 超强 AppMaster 资源

【博学谷IT技术支持】

yarn的组成部分

hadoop是由Common、HDFS、YARN、MapReduce等核心模块组成,yarn负责解决资源调度问题,这里介绍下yarn的业务执行流程。

  • yarn是Master/Slave结构,主要包含ResourceManage、NodeManager、ApplicationMaster和Conainer等组件。

  • ResourceManager为主节点,负责整个集群资源的管理和分配,由Scheduler(调度器)和ApplicationManager(应用程序管理器)组成。

    • Scheduler根据容量和队列等限制条件,为每个运行的程序分配资源
    • ApplicationManager 负责管理管理所有的应用程序,包括应用程序提交、与调度器协调资源启动ApplicationMaster、监控ApplicationMaster运行状态,并在失败时重新启动它。
  • NodeManager是从节点,定时想ResourceManager汇报资源使用情况,保持心跳,接受来自ApplicationMasterde 的Container启动/停止等各种请求。

yarn的执行流程

请添加图片描述

  1. 客户端向RM提交任务请求
  2. RM会在NM分配一个Container,启动AppMaster,让它管理整个任务的执行。
  3. AppMaster向任务调度器进行注册
  4. AppMaster向应用程序管理器申请资源,RM以Container列表的形式返回资源列表。
  5. AppMaster根据资源列表分别向对应的主机申请资源
  6. 各个NM根据Container分别开辟对应的资源,并且AppMaster会将MR任务各个MapTask和ReduceTask放在这些资源中运行
  7. 各个MapTask和Reduce在运行过程中,有任何的状态都需要向AppMaster汇报。
  8. AppMaster会将任务执行的最终状态汇报给RM

简述

客户端向ResourceManager提交任务请求,RM分配资源

Scheduler调度器

  • FIFO(队列调度器): 将job放入队列中,先入的job会优先得到资源,会因为一个job过大占用多数资源,影响后边job执行
  • Capacity Scheduler(容量调度器):将资源化成多个队列,提交任务如果没有指定队列会默认队列,可以给每个队列设置资源占用比例。
  • Fair Scheduler(公平调度器):根据job对总资源进行平均分配。

ApplicationMaster

每个应用程序都包含一个ApplicationMaster,主要的作用是

  • 与ResourceManager协调获取资源
  • 将任务进一步分配给内部任务
  • 与NodeManager通信启动或停止任务
  • 监控所欲任务运行状态,并在失败时为任务重新申请资源启动任务

Container

container是yarn中抽象的资源,它封装了某个接地那上的多维度资源,如内存,cpu,磁盘,网络等。

  • 运行在ApplicationMaster的Container
  • 运行在各类任务的Container

标签:Container,博学,ApplicationMaster,yarn,任务,超强,AppMaster,资源
From: https://www.cnblogs.com/neilniu/p/17448129.html

相关文章

  • 【博学谷学习记录】超强总结,用心分享 | 系统资源监控-psutil
    【博学谷IT技术支持】一、介绍psutil(python系统和进程实用程序)是一个跨平台库,用于在Python中检索有关正在运行的进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。它主要用于系统监控、分析、限制进程资源和管理正在运行的进程。二、相关api获取CPU信息cpu_count:......
  • 【博学谷学习记录】超强总结,用心分享 | jupyter常用功能
    jupyter安装文档地址https://jupyter.org/installpipinstallnotebook启动命令jupyternotebookjupyter-themes修改主题安装主题https://github.com/dunovank/jupyter-themesgithub地址pipinstall--upgradejupyterthemes查看所有主题jt-l修改主题jt-tg......
  • 【博学谷学习记录】超强总结,用心分享 | hbase基础操作
    【博学谷IT技术支持】HBase的介绍HBase是一个高可靠性、高性能、面向列、可伸缩的分布式操作系统。它是建立在HDFS之上的数据库系统,HBase是不支持SQL的,没有表关系,也无法join,不支持事务。HBase是基于google发布BigTable这篇论文而产生的,基于HDFS,数据最终存储时是在HDFS上,必......
  • 【博学谷学习记录】超强总结,用心分享 | MapReduec编程
    【博学谷IT技术支持】一、介绍MapReduce是将一个大的计算任务拆分成一个个小任务,让小任务在不同的计算机中进行处理,最后将任务的结果进行汇总的过程。MR的工作流程可以分为三个阶段,分别是map、shuffle、reduce二、编程Mapper阶段自定义一个类来集成Mapper类,重写map方法,将方......
  • 【博学谷学习记录】超强总结,用心分享 | java基础
    【博学谷IT技术支持】前言java是一门非常好的语言,比较有必要学习一下:随着科技发展,只会前端是不行的,学习一门后端序言非常有必要,这里记录下自己学习的过程。一、数据类型java是一种强类型语言,数据必须明确类型。基础数据类型有8种,分别是整数类型:byte,short,int,long,......
  • 博学谷学习记录】超强总结,用心分享 | 常用api
    【博学谷IT技术支持】常用APIMath类的常用方法方法名说明publicstaticintabs(inta)返回参数的绝对值publicstaticdoubleceil(doublea)向上取整publicstaticdoublefloor(doublea)向下取整publicstaticintround(floata)四舍五入publicstaticintmax(......
  • 【博学谷学习记录】超强总结,用心分享 | 集合
    【博学谷IT技术支持】集合集合根据存储分为单列集合java.util.Collection和双列结合java.util.Map,集合的长度是可变的,集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类。数组可以存基本数据类型和引用数据类型Collection单列集合的跟接口,用于存储一系列......
  • 【博学谷学习记录】超强总结,用心分享 | python基础学习(数据类型,运算符)
    【博学谷IT技术支持】基础数据类型Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建赋值方式直接赋值a=1#整型变量b=1.0#浮点型变量c='abc'#字符串多个赋值a=b=c=1a,b,c=1,2,3标准数据类型标准数据类型......
  • 博学谷学习记录】超强总结,用心分享 | mongodb基础用法
    【博学谷IT技术支持】数据库连接后端数据库连接语法:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]mongodb://是固定搭配,后边是可选参数用户名加密码,host是要连接服务器的地址,portx是指定的端口,默认27017da......
  • flink1.14.5集群(flink on yarn)部署1
    先安装hadoop,yarn,zookeeper 配置环境变量vim/etc/profile(注意新增了HADOOP_CLASSPATH变量)exportHADOOP_CLASSPATH=`/home/opt/hadoop-2.9.2/bin/hadoopclasspath`exportFLINK_HOME=/home/opt/flink-1.14.5exportPATH=$PATH:$FLINK_HOME/binsource/etc/profile......