通过集群Gateway节点提交作业

更新时间:
复制为 MD 格式

当您需要在不影响EMR集群核心服务稳定性的前提下,为多个用户或应用提供一个统一、隔离的作业提交入口时,可以使用Gateway节点。Gateway节点将作业提交等客户端负载与集群的Master节点分离,保障了核心组件的稳定性,并允许为不同用户配置独立的环境。

Gateway的三种部署形态与选型指南

Gateway 是 EMR 提供的作业提交隔离层,其核心价值在于:

  • 解耦客户端负载与集群核心服务

    将 spark-submithive -fyarn application 等客户端操作从 Master/Resource Manager 节点剥离。

  • 实现多租户环境隔离

    支持为不同用户/部门配置独立的运行时环境。

  • 提升集群稳定性与可维护性

    避免因高频提交、调试脚本、环境冲突或资源争抢影响 YARN ResourceManager、HDFS NameNode 等关键服务。

EMR 当前提供三种 Gateway 形态,适用于不同集群类型、版本及架构需求。

形态

支持的关联集群类型与版本要求

部署方式与关键特性

适用场景与选型建议

Gateway 节点组
(推荐首选)

仅支持以下集群:

  • DataLakeDataFlow集群:EMR-5.10.1及以上版本

  • Custom集群:EMR-5.17.1及以上版本

• 直接在现有集群内新增节点组,详情请参见管理节点组
• 自动同步集群主版本的客户端配置。

优先推荐:适用于需快速为已有 DataLake/DataFlow 集群扩展安全、隔离的提交入口,运维成本最低,配置一致性高。

Gateway 环境

支持DataLake、DataFlow、Custom、OLAP集群

• 基于ECS 实例手动部署详情请参见使用EMR-CLI自定义部署Gateway环境
• 完全独立的文件系统与运行环境,需手动同步集群主版本的客户端配置。

当集群不支持 Gateway 节点组时的标准化替代方案。

Gateway 集群

仅支持Hadoop、Kafka集群

  • 创建一个独立的、仅含 Gateway 节点的 EMR 集群,详情请参见创建Gateway集群

  • 自动同步集群主版本的客户端配置。

适用于Hadoop、Kafka集群。

操作步骤

  1. 使用SSH方式连接到Gateway实例。详情请参见登录集群

  2. 使用SSH连接到节点后,在命令行执行以下命令,提交并运行作业。本文以Spark 3.1.1版本为例,输入的命令示例如下。

    spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client --driver-memory 512m --num-executors 1 --executor-memory 1g --executor-cores 2 /opt/apps/SPARK3/spark-current/examples/jars/spark-examples_2.12-3.1.1.jar 10
    说明

    spark-examples_2.12-3.1.1.jar为您集群中对应的JAR包名称,您可以登录集群,在/opt/apps/SPARK3/spark-current/examples/jars路径下查看。

  3. 查看作业运行记录。提交作业后,您可以通过YARN UI方式查看作业运行记录。以下为您简单说明。

    1. 开启8443端口,详情请参见管理安全组

    2. 新增用户,详情请参见OpenLDAP 用户管理

      在使用Knox账号访问YARN UI页面时,需要Knox账号的用户名和密码。

    3. EMR on ECS页面,单击目标集群所在行的集群服务

    4. 单击访问链接与端口页签。

    5. 单击YARN UI所在行的公网链接。

      使用用户管理中的用户身份信息进行登录认证,即可进入YARN UI页面。

    6. All Applications页面,单击目标作业的ID,可以查看作业运行的详情。

      Hadoop控制台