更新时间:2026-10-29 GMT+08:00
分享

MRS Spark Python

功能

通过MRS Spark Python节点实现在MRS中执行预先定义的Spark Python作业。

MRS Spark Python算子的具体使用教程,请参见开发一个MRS Spark Python作业。

名词解释

  • 运行程序参数 (Program Arguments):通常指传递给Spark Driver的--conf配置或Spark Submit的选项。
  • 执行程序参数 / 脚本参数 (Script Arguments/Main Class Args):这是传递给Python脚本内部(即sys.argv或argparse)的参数。在该节点配置中,执行程序参数表示直接传递给Python代码的参数。

    参数类型

    填写内容示例

    作用对象

    解析方式

    运行程序参数 (Spark Conf)

    --conf spark.executor.memory=8g

    Spark引擎

    Spark Submit解析,用于配置集群资源。

    执行程序参数 (Script Args)

    简写URL(使用集群默认配置的NameNode地址):
    hdfs:///input hdfs:///output
    或者:
    完整URL:
    hdfs://host:port/path

    Python脚本

    传递给sys.argv,由Python代码解析。

    最佳使用场景:

    • 资源调整(内存、CPU、Shuffle分区):放在 “运行程序参数” 或界面专门的资源配置框中。
    • 业务逻辑参数(输入路径、输出路径、过滤条件):放在 “执行程序参数” 中。

参数

用户可参考表1,表2和表3配置MRS Spark Python节点的参数。

表1 属性参数

参数

是否必选

说明

节点名称

是

当前作业节点的名称。

节点名称只能包含英文字母、数字、中文字符、中划线、下划线、/、<>和点号,且长度小于等于128个字符。

说明:

节点名称不得包含其他以外的字符、超出长度限制等。如果节点名称不符合规则,将导致提交MRS作业失败。

默认情况下,节点名称会与选择的脚本名称保持同步。若不需要节点名称和脚本名称同步,请参考禁用作业节点名称同步变化禁用该功能。

作业名称

是

MRS Spark的作业名称。

作业名称只能由英文字母、数字、中划线和下划线组成,长度不能超过64个字符,不能包含中文字符。

系统支持MRS作业名称按照作业名称_节点名称格式自动填入。

MRS集群名

是

选择支持spark python的mrs集群。MRS只有特定版本支持spark python的集群,请先测试运行,保证集群支持。

如需新建集群,请参考以下方法:
  • 单击,进入“集群列表”页面新建MRS集群。
  • 前往MRS管理控制台进行新建。

如何新建集群,请参见《MapReduce服务(MRS) 使用指南》中的创建集群章节。

MRS资源队列

否

选择已创建好的MRS资源队列。

说明:

您需要先在数据安全服务队列权限功能中,配置对应的队列后,才能在此处选择到已配置的队列。当有多处同时配置了资源队列时,此处配置的资源队列为最高优先级。

脚本类型

是

  • 离线脚本(Offline Script)
  • 在线脚本(Online Script)
    说明:

    离线脚本指的是Python代码文件(.py)已经预先上传到了MRS集群的文件系统(如 HDFS或OBS)中,或者作为资源包(Jar/PyFile)上传到了DataArts Studio的资源管理中。作业运行时,Spark引擎会从这些存储位置加载代码文件并执行。

    在线脚本指的是Python代码直接编写在DataArts Studio的作业配置界面中(通常是一个文本编辑器区域,即就是脚本开发)。作业提交时,DataArts Studio会将这段代码临时打包或上传到集群,然后执行。

SQL脚本

是

仅“脚本类型”配置为“在线脚本”时可以配置。

选择已创建的Spark Python脚本。

说明:

脚本传递参数给作业节点时,参数数量最多不能超过50个,参数名长度不能超过64个字符,且参数值长度不能超过256个字符。

运行程序参数

否

仅“脚本类型”配置为“在线脚本”时可以配置。

为本次执行的作业配置相关优化参数(例如线程、内存、CPU核数等),用于优化资源使用效率,提升作业的执行性能。MRS Spark代理连接不支持该配置。

参考示例:调整Spark执行资源(最常使用)

如果您发现作业运行慢或OOM(内存溢出),可以通过运行程序参数调整内存和核心数。

示例参数:

--conf spark.executor.memory=8g
--conf spark.executor.cores=4
--conf spark.driver.memory=4g
--conf spark.sql.shuffle.partitions=200

解释如下:

spark.executor.memory=8g:每个Executor分配8GB内存。

spark.executor.cores=4:每个Executor使用4个CPU核心。

spark.driver.memory=4g:Driver节点分配4GB内存。

spark.sql.shuffle.partitions=200:将Shuffle阶段的分区数设置为200。

说明:

若集群为MRS 1.8.7版本或MRS 2.0.1之后版本,需要配置此参数。

MRS Spark作业的运行程序参数,请参见《MapReduce用户指南》中的运行Spark作业。

参数

是

仅“脚本类型”配置为“离线脚本”时可以配置。

输入参数信息,多个参数间使用Enter键分隔。示例如下:

--master

yarn

--deploy-mode

cluster

--num-executors

6

执行程序参数

否

仅“脚本类型”配置为“在线脚本”时可以配置。

执行程序参数表示直接传递给Python代码的参数。

输入MRS Spark Python的执行程序参数。

示例如下:

DataArts Studio支持在参数中使用系统变量,如 ${bizdate}(表示业务日期)、${ds}(表示调度日期)等。

在DataArts Studio中的配置执行程序参数:
hdfs:///data/raw/${bizdate} hdfs:///data/clean/${bizdate}

参数解释:

当作业在2024-05-27运行时,${bizdate}会被自动替换为2024-05-27。

最终传递给Python脚本的参数变为:

hdfs:///data/raw/2024-05-27 hdfs:///data/clean/2024-05-27

完整示例如下:

假设您要运行一个名为user_analysis.py的脚本,分析用户行为。

主文件:hdfs:///user/dayu/scripts/user_analysis.py

运行程序参数(Spark配置):

--conf spark.executor.memory=8g
--conf spark.sql.shuffle.partitions=200

执行程序参数(Python脚本参数):

--input hdfs:///data/ods/user_behavior/${bizdate} --output hdfs:///data/dws/user_analysis/${bizdate} --date ${bizdate}

这样配置后,Spark会以8GB Executor内存运行,并将--input,hdfs://...,--output,hdfs://...,--date,2024-05-27等参数传递给Python脚本。

特别地,不同执行程序参数间用空格隔开,可通过在参数名前添加@的方式防止参数信息被明文存储。

说明:

请勿输入敏感信息,例如ak、sk、password、authorization等信息。

属性

否

输入key=value格式的参数,多个参数间使用Enter键分割。

表2 高级参数

参数

是否必选

说明

节点执行的最长时间

是

设置节点执行的超时时间,如果节点配置了重试,在超时时间内未执行完成,该节点将会再次重试。

失败重试

是

节点执行失败后,是否重新执行节点。

  • 是:重新执行节点,请配置以下参数。
    • 超时重试
    • 最大重试次数
    • 重试间隔时间(秒)
  • 否:默认值,不重新执行节点。
    说明:

    如果作业节点配置了重试,并且配置了超时时间,该节点执行超时后,系统支持再重试。

    当节点运行超时导致的失败不会重试时,您可前往“默认项设置”修改此策略。

    当“失败重试”配置为“是”才显示“超时重试”。

当前节点失败后,后续节点处理策略

是

节点执行失败后的操作:

  • 终止后续节点执行计划:停止后续节点的运行,当前作业实例状态显示为“失败”。
  • 终止当前作业执行计划:停止当前作业运行,当前作业实例状态显示为“失败”。
  • 继续执行下一节点:忽略当前节点失败,当前作业实例状态显示为“忽略失败”。
  • 挂起当前作业执行计划:当前作业实例的状态为运行异常,该节点的后续节点以及依赖于当前作业的后续作业实例都会处于等待运行状态。

是否空跑

否

如果勾选了空跑,该节点不会实际执行,将直接返回成功。

任务组

否

选择任务组。任务组配置好后,可以更细粒度地进行当前任务组中的作业节点的并发数控制,比如作业中包含多个节点、补数据、重跑等场景。

表3 血缘关系

参数

说明

输入

新建

单击“新建”,在“类型”的下拉选项中选择要新建的类型。可以选择DWS,OBS,CSS,HIVE,CUSTOM和DLI类型。

确定

单击“确认”,保存节点输入功能的参数配置。

取消

单击“取消”,取消节点输入功能的参数配置。

编辑

单击,修改节点输入功能的参数配置,修改完成后,请保存。

删除

单击,删除节点输入功能的参数配置。

查看表详情

单击,查看节点输入血缘关系创建数据表的详细信息。

输出

新建

单击“新建”,在“类型”的下拉选项中选择要新建的类型。可以选择DWS,OBS,CSS,HIVE,CUSTOM,CloudTable和DLI类型。

确定

单击“确认”,保存节点输出功能的参数配置。

取消

单击“取消”,取消节点输出功能的参数配置。

编辑

单击,修改节点输出功能的参数配置,修改完成后,请保存。

删除

单击,删除节点输出功能的参数配置。

查看表详情

单击,查看节点输出血缘关系创建数据表的详细信息。

相关文档