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 集群的场景。

相关推荐
悟乙己2 天前
在 PySpark 中解锁窗口函数的力量,实现高级数据转换
pyspark·窗口函数
不辉放弃1 个月前
FlinkSql(详细讲解二)
数据库·flink·大数据开发
不辉放弃1 个月前
阿里云 Flink
数据库·大数据开发·阿里云flink
不辉放弃1 个月前
Apache Flink 的详细介绍
数据库·flink·pyspark·大数据开发
不辉放弃1 个月前
pyspark中的kafka的读和写案例操作
大数据·数据库·pyspark·大数据开发
不辉放弃1 个月前
Spark SQL 的 SQL 模式和 DSL模式
数据库·pyspark·大数据开发
不辉放弃1 个月前
Apache Spark 的结构化流
大数据·数据库·pyspark·伪实时
@十八子德月生1 个月前
第三阶段—8天Python从入门到精通【itheima】-143节(pyspark实战——数据计算——flatmap方法)
大数据·开发语言·python·数据分析·pyspark·好好学习,天天向上·question answer
不辉放弃1 个月前
Spark SQL 的详细介绍
数据库·pyspark·大数据开发·sparksql
不辉放弃1 个月前
Spark的宽窄依赖
大数据·数据库·pyspark