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

相关推荐
不辉放弃7 小时前
FlinkSql(详细讲解二)
数据库·flink·大数据开发
不辉放弃5 天前
阿里云 Flink
数据库·大数据开发·阿里云flink
不辉放弃5 天前
Apache Flink 的详细介绍
数据库·flink·pyspark·大数据开发
不辉放弃6 天前
pyspark中的kafka的读和写案例操作
大数据·数据库·pyspark·大数据开发
不辉放弃6 天前
Spark SQL 的 SQL 模式和 DSL模式
数据库·pyspark·大数据开发
不辉放弃7 天前
Apache Spark 的结构化流
大数据·数据库·pyspark·伪实时
@十八子德月生7 天前
第三阶段—8天Python从入门到精通【itheima】-143节(pyspark实战——数据计算——flatmap方法)
大数据·开发语言·python·数据分析·pyspark·好好学习,天天向上·question answer
不辉放弃10 天前
Spark SQL 的详细介绍
数据库·pyspark·大数据开发·sparksql
不辉放弃12 天前
Spark的宽窄依赖
大数据·数据库·pyspark
不辉放弃13 天前
kafka的消息存储机制和查询机制
数据库·kafka·pyspark·大数据开发