Spark SQL可实现分布式SQL查询引擎处理结构化数据,提高作业的执行效率。DataWorks的CDH Spark SQL节点可进行CDH Spark SQL任务的开发和周期性调度,以及与其他作业的集成操作。本文为您介绍如何创建及使用CDH Spark SQL节点。
前提条件
数据开发(DataStudio)中已创建业务流程。
数据开发(DataStudio)基于业务流程对不同开发引擎进行具体开发操作,所以您创建节点前需要先新建业务流程,操作详情请参见创建业务流程。
已创建阿里云CDH集群,并注册CDH集群至DataWorks。
创建CDH相关节点并开发CDH任务前,您需要先将CDH集群注册至DataWorks工作空间,操作详情请参见注册CDH集群至DataWorks。
已购买Serverless资源组,并完成资源组的相关配置(包括绑定工作空间、网络配置)等,详情请参见新增和使用Serverless资源组。
使用限制
仅支持使用Serverless资源组运行CDH Spark SQL节点任务。
步骤一:创建CDH Spark SQL节点
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
右键单击目标业务流程,选择
。在新建节点对话框输入节点名称,单击确认。节点创建完成,您可在节点中进行对应任务的开发与配置。
步骤二:开发CDH Spark SQL任务
(可选)选择CDH集群实例
若您的工作空间注册了多个CDH集群,则可在节点编辑页面顶部选择合适的集群。若仅注册了一个CDH集群,默认使用该集群进行开发操作。
开发SQL代码
开发SQL代码:简单示例
在CDH Spark SQL节点的代码编辑区域编写要执行的任务。
示例在test_spark
数据库中创建test_lineage_table_f1
、test_lineage_table_t2
表,并且从test_lineage_table_f1
表向test_lineage_table_t2
表复制数据,代码如下:
本示例仅为参考,实际使用时请替换为您自己的数据库环境。
CREATE TABLE IF NOT EXISTS test_spark.test_lineage_table_f1 (`id` BIGINT, `name` STRING)
PARTITIONED BY (`ds` STRING);
CREATE TABLE IF NOT EXISTS test_spark.test_lineage_table_t2 AS SELECT * FROM test_spark.test_lineage_table_f1;
INSERT into test_spark.test_lineage_table_t2 SELECT * FROM test_spark.test_lineage_table_f1;
开发SQL代码:使用调度参数
DataWorks提供的调度参数可实现周期调度场景下代码动态入参,您可在节点任务中通过${变量名}
的方式定义代码中的变量,并在节点编辑页面右侧导航栏的调度配置>调度参数,为该变量赋值。调度参数支持的格式及配置详情,请参见调度参数支持的格式、配置并使用调度参数。
示例代码如下。
SELECT '${var}'; --可结合调度参数使用。
(可选)配置高级参数
在CDH Spark SQL节点编辑页面,单击右侧导航栏的高级设置,即可配置任务运行相关的参数。例如:
"spark.driver.memory": "2g"
:用于设置分配给Spark驱动节点的内存大小。"spark.yarn.queue": "haha"
:用于设置应用程序提交到YARN的哪个队列。
更多高级参数的配置,请参见Spark Configuration。
步骤三:配置任务调度
如您需要周期性执行创建的节点任务,可单击节点编辑页面右侧的调度配置,根据业务需求配置该节点任务的调度信息。配置详情请参见任务调度属性配置概述。
您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
步骤四:调试任务代码
您可根据需要执行如下调试操作,查看任务是否符合预期。
步骤五:提交发布任务
节点任务配置完成后,需执行提交发布操作,提交发布后节点即会根据调度配置内容进行周期性运行。
单击工具栏中的图标,保存节点。
单击工具栏中的图标,提交节点任务。
提交时需在提交对话框中输入变更描述,并根据需要选择是否在节点提交后执行代码评审。
说明您需设置节点的重跑属性和依赖的上游节点,才可提交节点。
代码评审可对任务的代码质量进行把控,防止由于任务代码有误,未经审核直接发布上线后出现任务报错。如进行代码评审,则提交的节点代码必须通过评审人员的审核才可发布,详情请参见代码评审。
如您使用的是标准模式的工作空间,任务提交成功后,需单击节点编辑页面右上方的发布,将该任务发布至生产环境执行,操作请参见发布任务。