EMR Spark 任务适用于使用 Java\Python Spark 处理数据的场景,支持引用 Jar 资源包、TOS 资源文件和 Python 语句的方式来定时执行 EMR Spark 任务。
新建任务完成后,您可在任务配置界面完成以下参数配置:
语言类型支持 Java、Python。
注意
语言类型暂不支持互相转换,切换语言类型会清空当前配置,需谨慎切换。
注意
设置系统环境变量时,避免直接覆盖系统环境变量,请按照追加方式指定,例如PATH=$PATH:/home/lihua/apps/bin/
;
参数 | 说明 |
---|---|
Spark 参数 | |
Main Class | 语言类型为 Java 时填写,需填写主类信息,如 org.apache.spark.examples.JavaSparkPi。 |
Conf参数 | 配置任务中需设置的一些 conf 参数,例如您可通过
您可通过以下两种方式来进行配置:
|
任务参数 | |
自定义参数 | 输入任务中已定义的参数,多个参数以空格形式进行分隔,例如 param1 param2 param3,参数最终将以字符串形式传入。 |
任务产出数据登记,用于记录任务---数据血缘信息,并不会对代码逻辑造成影响。对于系统无法通过解析获取产出信息的任务,可手动登记其产出信息。
如果任务含有 Hive 表或者 HDFS 目录的写入操作,强烈建议填写。您填写的内容即为任务产出,支持填写多个。其他任务的依赖推荐会根据此处填写的 Hive 表或者 HDFS 目录进行推荐。 具体登记内容包括:
任务配置完成后,在右侧导航栏中,单击调度配置按钮,进入调度配置窗口,您可以在此设置调度属性、依赖等信息,详细参数设置详见:调度设置。
以下示例将为您演示如何通过 EMR Spark 任务中 Python 语言方式,来直接访问 EMR Hive 表中的数据。
CREATE TABLE ods.student_demo ( id STRING COMMENT 'id', name STRING COMMENT 'name', age STRING COMMENT 'age' ) PARTITIONED BY (dt STRING COMMENT 'date'); INSERT INTO ods.student_demo PARTITION (dt = '20230518') VALUES(1, 'TOM', 10);
from pyspark.sql import SparkSession def run(): spark = SparkSession \ .builder \ .enableHiveSupport() \ .config("hive.exec.dynamic.partition", "true") \ .config("hive.exec.dynamic.partition.mode", "nonstrict") \ .getOrCreate() print("="*80) df = spark.sql('select * from ods.student_demo where dt=20230518;') print("="*80) df.show() spark.stop() if __name__ == "__main__": run()
任务配置完成后,您可单击操作栏中的保存和调试按钮,进行任务调试。
注意
待任务执行成功后,您可在结果页概览界面,单击 TrackingURL 链接,前往 Yarn UI 日志界面,查看任务执行结果。
说明
登录 Yarn UI 界面,您需要先获取 Yarn UI 界面登录所需的账号信息,获取方式详见用户管理。
获取登录账号信息后,登录 Yarn UI 界面,单击 Logs,进入查看任务执行结果。
调试任务成功,并查看日志校验数据情况无误后,返回数据开发界面,将任务提交发布到运维中心离线任务运维中执行。
单击上方操作栏中的保存和提交上线按钮,在提交上线对话框中,选择回溯数据、监控设置、提交设置等参数,最后单击确认按钮,完成作业提交。 提交上线说明详见:数据开发概述---离线任务提交。
后续任务运维操作详见:离线任务运维。