您可以通过创建EMR(E-MapReduce)Shell节点执行Shell脚本任务。
前提条件
EMR引擎类型包括新版数据湖(DataLake)及Hadoop,不同类型引擎创建节点前需执行的准备工作不同。您需要根据实际情况完成EMR侧及DataWorks侧的准备工作。- DataLake:详情请参见DataLake集群配置、DataWorks配置。
- Hadoop:Hadoop集群开发前准备工作。
使用限制
- 仅支持使用独享调度资源组运行该类型任务。
- DataWorks目前已不支持新绑定Hadoop类型的集群,但您之前已经绑定的Hadoop集群仍然可以继续使用。
注意事项
- spark-submit方式提交的任务,deploy-mode推荐使用cluster模式,不建议使用client模式。
- EMR Shell节点是运行在DataWorks调度资源组,而非EMR集群的,您可以使用一些EMR组件命令,但无法直接读取EMR上资源的情况。如果要引用资源,则需要先上传DataWorks资源。详情请参见上传EMR资源。
创建EMR Shell节点
- 进入数据开发页面。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据开发。
- 创建业务流程。如果您已有业务流程,则可以忽略该步骤。
- 鼠标悬停至
图标,选择新建业务流程。
- 在新建业务流程对话框,输入业务名称。
- 单击新建。
- 鼠标悬停至
- 创建EMR Shell节点。
创建EMR Shell任务
- 任务调度配置。如果您需要周期性执行创建的节点任务,可以单击节点编辑页面右侧的调度配置,根据业务需求配置该节点任务的调度信息:
- 配置任务调度的基本信息,详情请参见配置基础属性。
- 配置时间调度周期、重跑属性和上下游依赖关系,详情请参见时间属性配置说明及配置同周期调度依赖。说明 您需要设置节点的重跑属性和依赖的上游节点,才可以提交节点。
- 配置资源属性,详情请参见配置资源属性。访问公网或VPC网络时,请选择与目标节点网络连通的调度资源组作为周期调度任务使用的资源组。详情请参见配置资源组与网络连通。
- 提交并发布节点任务。
- 单击工具栏中的
图标,保存节点。
- 单击工具栏中的
图标,提交节点任务。
- 在提交新版本对话框中,输入变更描述。
- 单击确定。
如果您使用的是标准模式的工作空间,任务提交成功后,需要将任务发布至生产环境进行发布。请单击顶部菜单栏左侧的任务发布。具体操作请参见发布任务。 - 单击工具栏中的
- 查看周期调度任务。
- 单击编辑界面右上角的运维,进入生产环境运维中心。
- 查看运行的周期调度任务,详情请参见查看并管理周期任务。
如果您需要查看更多周期调度任务详情,可单击顶部菜单栏的运维中心,详情请参见运维中心概述。
EMR Shell使用资源
如果您使用的是DataLake(新版数据湖)集群,则可通过如下步骤引用EMR JAR资源。
- 创建EMR JAR资源,详情请参见创建和使用EMR资源。首次使用需要进行一键授权。
- 引用EMR JAR资源。
- 打开创建的EMR Shell节点,停留在代码编辑页面。
- 在引用资源。 节点下,找到待引用资源,右键选择
- 选择资源后,当节点编辑页面显示
##@resource_reference{""}
格式的语句,表明资源引用成功。
EMR Shell使用调度参数
使用EMR Shell节点进行数据开发。
在SQL编辑区域输入任务代码,示例如下。
DD=`date`;
echo "hello world, $DD"
##可以结合调度参数使用
echo ${var};
如果您使用的是DataLake(新版数据湖)集群,则还支持如下命令行。
- Shell命令:
/usr/bin
及/bin
下的Shell命令。例如,ls、echo等。 - Yarn组件:hadoop、hdfs、yarn。
- Spark组件:spark-submit。
- Sqoop组件:sqoop-export、sqoop-import、sqoop-import-all-tables等。说明 使用该组件时,您需要在RDS白名单中添加资源组的IP信息。