首页常见问题正文

Spark on Yarn作业执行流程是怎样的?

更新时间:2024-03-07 来源:黑马程序员 浏览量:

IT培训班

  Apache Spark是一个分布式计算框架,而YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的资源管理器。在使用Spark on YARN时,Spark作业的执行流程如下所示:

  1.提交作业:

  用户通过Spark提交作业到YARN集群。作业可以是Spark应用程序(使用 SparkContext 或 SparkSession)或者 Spark SQL查询。

  2.资源申请:

  YARN ResourceManager接收到作业提交请求后,分配一个ApplicationMaster(AM)给该作业。AM负责管理作业的执行。

  3.ApplicationMaster启动:

  YARN在集群中选择一个节点来启动ApplicationMaster。ApplicationMaster负责与ResourceManager通信,协调作业的执行,以及申请和分配资源。

  4.资源分配:

  ApplicationMaster向ResourceManager请求执行作业所需的资源,包括CPU、内存和其他相关资源。ResourceManager根据集群的资源状况和作业的需求来分配资源。

  5.任务调度:

  一旦资源分配完成,ApplicationMaster开始调度作业的任务。Spark on YARN使用Spark的调度器来决定如何将作业拆分成不同的任务,并在集群中的节点上启动这些任务。

  6.任务执行:

  每个任务在分配到的资源上执行Spark代码。这些任务可能包括数据加载、转换、计算和输出等操作,根据作业的逻辑而定。

  7.数据读取和计算:

  Spark作业会从数据源读取数据,对数据进行转换和计算,并生成相应的结果。

  8.结果输出:

  计算完成后,Spark作业可能会将结果写入文件系统、数据库或者其他存储系统中,以供后续分析或应用程序使用。

  9.监控和管理:

  YARN和Spark提供了各种工具来监控作业的执行情况和资源使用情况。用户可以通过YARN ResourceManager UI、Spark UI等来查看作业的状态、进度和日志信息,并对作业进行管理和调优。

  10.作业完成:

  一旦作业执行完成,ApplicationMaster会向ResourceManager发送作业完成的通知,并释放所占用的资源。用户可以根据作业的执行结果来进行后续的分析和处理。

  总体来说,Spark on YARN的作业执行流程包括资源申请、任务调度、任务执行和结果输出等步骤,通过 YARN和Spark的协同工作,实现了高效的分布式计算。

分享到:
在线咨询 我要报名
和我们在线交谈!