您可以创建EMR(E-MapReduce) HIVE节点,通过类SQL语句读写、管理存储在分布式存储系统上的大数据集的数据仓库,完成海量日志数据的分析和开发工作。
前提条件
已创建阿里云EMR集群,并注册EMR集群至DataWorks。操作详情请参见注册EMR集群至DataWorks。
(可选,RAM账号需要)进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发或空间管理员(权限较大,谨慎添加)角色权限,添加成员的操作详情请参见为工作空间添加空间成员。
已购买Serverless资源组并完成资源组配置,包括绑定工作空间、网络配置等,详情请参见新增和使用Serverless资源组。
数据开发(DataStudio)中已创建业务流程。
数据开发(DataStudio)基于业务流程对不同开发引擎进行具体开发操作,所以您创建节点前需要先新建业务流程,操作详情请参见创建业务流程。
使用限制
仅支持使用Serverless资源组(推荐)或独享调度资源组运行该类型任务。
DataLake或自定义集群若要在DataWorks管理元数据,需先在集群侧配置EMR-HOOK。若未配置,则无法在DataWorks中实时展示元数据、生成审计日志、展示血缘关系、开展EMR相关治理任务。配置EMR-HOOK,详情请参见配置Hive的EMR-HOOK。
步骤一:创建EMR Hive节点
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
新建EMR Hive节点。
右键单击目标业务流程,选择
。说明您也可以鼠标悬停至新建,选择
。在新建节点对话框中,输入名称,并选择引擎实例、节点类型及路径。单击确认,进入EMR Hive节点编辑页面。
说明节点名称支持大小写字母、中文、数字、下划线(_)和小数点(.)。
步骤二:开发EMR Hive任务
在EMR Hive节点编辑页面双击已创建的节点,进入任务开发页面,执行如下开发操作。
开发SQL代码
在SQL编辑区域开发任务代码,您可在代码中使用${变量名}的方式定义变量,并在节点编辑页面右侧导航栏的调度配置>调度参数中为该变量赋值。实现调度场景下代码的动态传参,调度参数使用详情,请参考调度参数支持的格式,示例如下。
show tables;
select '${var}'; --可以结合调度参数使用。
select * from userinfo ;
SQL语句最大不能超过130KB。
如果您工作空间的数据开发中绑定多个EMR数据源,则需要根据业务需求选择合适的引擎。如果仅绑定一个EMR引擎,则无需选择。
如果您需要修改代码中的参数赋值,请单击界面上方工具栏的高级运行。参数赋值逻辑详情请参见运行,高级运行和开发环境冒烟测试赋值逻辑有什么区别。
(可选)配置高级参数
您可在节点高级设置处配置特有属性参数。更多属性参数设置,请参考Spark Configuration。不同类型EMR集群可配置的高级参数存在部分差异,具体如下表。
DataLake集群/自定义集群:EMR on ECS
高级参数 | 配置说明 |
queue | 提交作业的调度队列,默认为default队列。关于EMR YARN说明,详情请参见队列基础配置。 |
priority | 优先级,默认为1。 |
FLOW_SKIP_SQL_ANALYZE | SQL语句执行方式。取值如下:
说明 该参数仅支持用于数据开发环境测试运行流程。 |
DATAWORKS_SESSION_DISABLE | 适用于开发环境直接测试运行场景。取值如下:
说明 该参数配置为 |
其他 | 您也可以直接在高级配置里追加自定义Hive Connection参数。 |
Hadoop集群:EMR on ECS
高级参数 | 配置说明 |
queue | 提交作业的调度队列,默认为default队列。关于EMR YARN说明,详情请参见队列基础配置。 |
priority | 优先级,默认为1。 |
FLOW_SKIP_SQL_ANALYZE | SQL语句执行方式。取值如下:
说明 该参数仅支持用于数据开发环境测试运行流程。 |
USE_GATEWAY | 设置本节点提交作业时,是否通过Gateway集群提交。取值如下:
说明 如果本节点所在的集群未关联Gateway集群,此处手动设置参数取值为 |
执行SQL任务
步骤三:配置节点调度
如您需要周期性执行创建的节点任务,可单击节点编辑页面右侧的调度配置,根据业务需求配置该节点任务的调度信息。配置详情请参见任务调度属性配置概述。
您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
步骤四:发布节点任务
节点任务配置完成后,需执行提交发布操作,提交发布后节点即会根据调度配置内容进行周期性运行。
单击工具栏中的图标,保存节点。
单击工具栏中的图标,提交节点任务。
提交时需在提交对话框中输入变更描述,并根据需要选择是否在节点提交后执行代码评审。
说明您需设置节点的重跑属性和依赖的上游节点,才可提交节点。
代码评审可对任务的代码质量进行把控,防止由于任务代码有误,未经审核直接发布上线后出现任务报错。如进行代码评审,则提交的节点代码必须通过评审人员的审核才可发布,详情请参见代码评审。
如您使用的是标准模式的工作空间,任务提交成功后,需单击节点编辑页面右上方的发布,将该任务发布至生产环境执行,操作请参见发布任务。
后续步骤
任务提交发布后,会基于节点的配置周期性运行,您可单击节点编辑界面右上角的运维,进入运维中心查看周期任务的调度运行情况。详情请参见查看并管理周期任务。