spark on yarn

Spark on YARN 是指将 Spark 应用程序运行在 Hadoop YARN 集群上,借助 YARN 的资源管理和调度能力来管理 Spark 的计算资源。这种模式能充分利用现有 Hadoop 集群资源,简化集群管理,是企业中常用的 Spark 部署方式。

核心角色

• Spark 应用:包含 Driver 进程和 Executor 进程。Driver 负责任务调度、逻辑处理;Executor 负责执行具体任务并存储数据。

• YARN 组件:

◦ ResourceManager:集群资源(CPU、内存)的总管理者,负责接收应用的资源请求并分配。

◦ NodeManager:运行在每个节点上,管理本节点的资源,监控容器(Container)的运行。

◦ ApplicationMaster:为每个 Spark 应用启动,向 ResourceManager 申请资源,协调 Executor 运行。

工作流程

  1. 用户提交 Spark 应用到 YARN,指定资源需求(如内存、CPU 核数)。

  2. YARN 的 ResourceManager 分配第一个容器,启动 Spark 的 ApplicationMaster。

  3. ApplicationMaster 向 ResourceManager 申请运行 Executor 所需的容器。

  4. ResourceManager 分配容器后,ApplicationMaster 通知对应节点的 NodeManager 启动 Executor。

  5. Driver(通常与 ApplicationMaster 同进程)与 Executor 通信,分配任务并监控执行。

  6. 应用运行结束后,ApplicationMaster 向 ResourceManager 注销,释放资源。

优势

• 资源统一管理:与 MapReduce 等其他 YARN 应用共享集群资源,提高资源利用率。

• 弹性伸缩:可根据任务需求动态申请或释放资源,适应负载变化。

• 简化运维:无需单独维护 Spark 集群,降低部署和管理成本。

这种模式让 Spark 能更好地融入 Hadoop 生态,适合需要大规模数据处理且已有 Hadoop 集群的场景。

相关推荐
不辉放弃5 天前
PySpark Standalone 集群
pyspark·大数据开发
不辉放弃5 天前
pyspark中map算子和flatmap算子
数据库·pyspark·大数据开发
不辉放弃5 天前
PySpark 常用算子详解
pyspark·大数据开发
贝塔西塔8 天前
PySpark中python环境打包和JAR包依赖
大数据·开发语言·python·spark·jar·pyspark
SLUMBER_PARTY_15 天前
pyspark大规模数据加解密优化实践
pyspark·pandas_udf
SLUMBER_PARTY_1 个月前
pyspark非安装使用graphframes
pyspark
SLUMBER_PARTY_1 个月前
PySpark 使用pyarrow指定版本
pyspark
不辉放弃2 个月前
HiveSQL语法全解析与实战指南
数据库·hive·大数据开发
不辉放弃2 个月前
HDFS:解锁大数据存储的奥秘
数据库·大数据开发