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

你可能感兴趣的:(pyspark,大数据开发)