一个专注于大数据技术架构与应用分享的技术博客

Spark on Yarn 架构解析

Spark on Yarn 架构解析

在大数据处理领域,Spark 是一个非常流行的框架。在分布式计算中,资源管理是一个重要的问题,而 Yarn 是一个高效的资源管理系统。本文将探讨 Spark on Yarn 架构及其实现细节。

Spark on Yarn 架构

Spark on Yarn 架构包含三个主要组件:

  • Spark driver:负责 Spark 应用程序的管理和协调。
  • Application master:负责与 Yarn 进行交互,协调处理 Spark 应用程序所需的资源。
  • Executor:在处理节点上运行的 Spark 应用程序的工作单元。

在运行 Spark on Yarn 架构时,Spark driver 在客户端机器上启动。然后,它将 Spark 应用程序提交到 Yarn,然后启动 Application master。Application master 从 Yarn 获取资源,然后启动 Executor。Executor 在处理节点上启动,根据 Application master 的指示运行 Spark 应用程序。

Spark on Yarn 架构图

实现细节

Spark on Yarn 架构的实现包括以下步骤:

  1. 创建 Yarn 客户端。

Spark 应用程序创建 Yarn 客户端,用于与 Yarn 通信。Yarn 客户端负责与 ResourceManager 和 ApplicationMaster 进行通信,并将应用程序提交到 Yarn 集群。

  1. 提交应用程序。

Spark 应用程序将应用程序提交到 Yarn 集群。通过调用 yarnClient.submitApplication() 方法提交应用程序,该方法将应用程序与 ResourceManager 进行通信,并分配一个新的 Application ID。

  1. 启动 ApplicationMaster。

Yarn 集群为 Spark 应用程序分配资源,并启动 ApplicationMaster。ApplicationMaster 负责与 Yarn ResourceManager 协商资源,并初始化 Spark 上下文。

  1. 启动 Executor。

ApplicationMaster 使用 Yarn 的启动容器机制,在每个计算节点上启动 Executor。每个 Executor 都是一个单独的进程,负责处理 Spark 应用程序的一个分区。

  1. 运行 Spark 应用程序。

ApplicationMaster 向 Executor 发送任务,然后 Executor 执行任务并将结果返回给 ApplicationMaster。ApplicationMaster 继续向每个 Executor 发送更多任务,直到所有任务都完成为止。

  1. 结束应用程序。

应用程序完成后,Spark driver 将关闭 ApplicationMaster。ApplicationMaster 关闭时会发送一个请求给 ResourceManager,以释放所有分配给 Spark 应用程序的资源。

总结

Spark on Yarn 架构是一个高效的分布式计算框架,它通过将 Spark 应用程序与 Yarn 资源管理器进行结合,实现资源的高效管理。在 Spark on Yarn 架构中,Spark driver 负责 Spark 应用程序的管理和协调;Application master 负责与 Yarn 进行交互,协调处理 Spark 应用程序所需的资源;Executor 在处理节点上运行 Spark 应用程序的工作单元。在实现细节方面,Spark 应用程序通过 Yarn 客户端与 Yarn 通信,并将应用程序提交到 Yarn 集群;ApplicationMaster 负责与 Yarn ResourceManager 协商资源,并初始化 Spark 上下文;Executor 是单独的进程,负责处理 Spark 应用程序的一个分区。最后,Spark driver 关闭 ApplicationMaster,释放所有 Spark 应用程序所占用的资源。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Spark on Yarn 架构解析》
文章链接:https://macsishu.com/spark-on-yarn-structure-parsing
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。