首页 > 其他分享 >06-Spark on YARN的设计

06-Spark on YARN的设计

时间:2022-08-14 22:13:33浏览次数:58  
标签:Task 06 Driver YARN Spark AppMaster 运行

实施

  • 问题为什么要将Spark的程序运行在YARN上,不运行在自带的Standalone集群上?

  • 实现

    • 统一化资源管理
      • 工作中的计算集群大多数情况下只有1套集群
      • 如果Hadoop生态的程序,例如MR、Hive、Sqoop、Oozie等使用YARN来计算
      • 而Spark的程序单独用Standalone集群来计算
      • 就导致了一套硬件资源被两套资源管理平台所管理,使用时会导致资源竞争冲突等问题
      • 不能充分的发挥硬件资源的性能且管理麻烦
    • 自由开发模式
      • 使用YARN统一化管理整个硬件集群的所有计算资源:公共分布式资源平台
      • YARN支持多种类型程序的运行:MR、Tez、Spark、Flink等
    • 成熟的资源调度机制
      • 支持多队列、多种调度器可以实现不同场景下的计算资源隔离和任务调度
      • YARN中Capacity、Fair调度器

回顾YARN上程序运行的流程

  • step1:客户端申请提交运行MR程序

  • step2:ResourceManager验证是否合法,如果合法,随机选择一台NodeManager启动AppMaster

  • step3:AppMaster根据任务分配向ResourceManager申请Task运行的Container资源

  • step4:ResourceManager根据资源情况分配对应的Container信息返回给AppMaster

  • step5:AppMaster根据ResourceManager分配的Container信息,将Container信息分发给对应的NodeManager

  • step6:NodeManager收到Container信息,启动MapTask和ReduceTask运行

  • step7:每个Task将自己运行的信息汇报给AppMaster,AppMaster监控每个Task的状态,直到Task结束

  • step8:AppMaster等到所有Task结束返回运行结果

核心:

  • 问题Spark on YARN时,在不同的deploy mode下有什么区别?

  • 思路

    • deploy-mode:决定Driver进程运行的位置
      • client:运行在客户端
      • cluster:运行在从节点【NM】
    • AppMaster的功能:申请资源、调度、监控Task、反馈结果【一定运行在NM】
    • Driver的功能:申请资源、解析Task、调度Task、监控Task、反馈结果【由deploymode决定】

Spark on YARN client模式

  • AppMaster与Driver共存

  • AppMaster运行在NodeManager上:负责申请资源,启动Executors、反馈结果

  • Driver运行在客户端机器上,运行在客户端进程内部:负责解析、调度和监控Task

  • 测试流程图:

Spark on YARN cluster模式

  • AppMaster与Driver合并

  • Driver以子进程的方式运行在AppMaster进程内部,整体负责实现资源申请、Task的解析、调度和监控

  • 测试流程图

标签:Task,06,Driver,YARN,Spark,AppMaster,运行
From: https://www.cnblogs.com/z-h-q/p/16586512.html

相关文章

  • 05-集群提交:spark-submit脚本
    结构:命令+选项+文件+参数基础选项:优先级:代码中配置【程序特有】>参数选项【运行模式、程序名称、资源选项】>配置文件【公共配置】--master:用于指定程序的......
  • 01-Spark的功能及特点
    定义:基于内存式计算的分布式的统一化的数据分析引擎功能:多语言数据分析引擎工具栈实现离线数据批处理:类似于MapReduce、Pandas,写代码做处理实现交互式即时数据查询......
  • 02-Spark的应用及使用
    应用场景离线场景:实现离线数据仓库中的数据清洗、数据分析、即席查询等应用比较成熟,工作中主要的应用场景使用Spark对各种数据源数据进行处理:Hive、RDBMS、文件Hive......
  • 03-Spark的计算流程设计
    MR的计算流程设计step1:读取数据:Input功能一:实现分片,将读取到的数据进行划分,将不同的数据才能分给不同Task功能二:转换KVstep2:处理数据:Map、Shuffle、ReduceMap:负......
  • [POI2006]Pro-Professor Szu & ZLOJ 练习62 B
    writtenon2022-08-09题目不难,但是需要总结一下。题意很明确,就不过多阐述了。读完题目后,很明显可以建反图,然后就会有两种方法。第一种方法是直接拓扑排序找环,这种方式......
  • 【MIT18.06·线性代数02】
    线性方程组的矩阵形式可以将线性方程组写成\(Ax=b\)的矩阵相乘形式:比如线性方程组\(\left\{\begin{matrix}\begin{aligned}2x-y&=0\\-x+2y&=3\end{aligned}\end......
  • PySpark 大数据处理
    本文主要介绍Spark的一些基本算子,PySpark及SparkSQL的使用方法。虽然我从2014年就开始接触Spark,但几年来一直没有真正地学以致用,时间一久便忘了如何使用,直到在工作中用......
  • 1069 微博转发抽奖——20分
    小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数M......
  • 1067 试密码——20分
    当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。输入格式:输入在第一行给出一个密码(长度......
  • 1068 万绿丛中一点红——20分
    对于计算机而言,颜色不过是像素点对应的一个24位的数值。现给定一幅分辨率为MxN的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围8个相......