本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
工作流定义是通过拖拽任务节点并建立任务节点之间的关联来创建可视化的DAG(有向无环图)。本文为您介绍如何创建工作流及工作流定义的相关操作。
前提条件
已新建项目,详情请参见管理项目。
创建工作流
- 进入项目管理页面。 - 使用阿里云账号(主账号)或RAM用户登录E-MapReduce控制台。 
- 在左侧导航栏,选择EMR Workbench > Workflow。 
- 在Workflow页面,单击目标工作空间操作列的控制台。 
- 在项目管理页面,单击已有项目的项目名称。 
 
- 在左侧导航栏,选择数据开发 > 工作流定义。 
- 在工作流定义页面,单击创建工作流。 
- 在创建工作流页面,拖拽节点块到画布中,在弹出的对话框中,配置相关的参数,单击确定。 - 本示例以SHELL类型为例,其他任务类型详情请参见任务类型。如需关联手动任务,请打开关联手动任务开关,选择已有的手动任务,详情请参见手动任务快速入门。 - 参数 - 说明 - 节点名称 - 任务的名称。一个工作流定义中的节点名称是唯一的。 - 运行标志 - 正常(默认):运行工作流时执行该任务。 
- 禁止执行:运行工作流不会执行该任务。 
 - 描述 - 当前节点的功能描述。 - 任务优先级 - 流程运行的优先级。支持以下级别: - HIGHEST:最高。 
- HIGH:高。 
- MEDIUM(默认):中。 
- LOW:低。 
- LOWEST:最低。 
 - 失败重试次数 - 工作流运行失败自动重试的次数。 - 失败重试间隔 - 每次失败重试的间隔。单位:分。 - 延时执行时间 - 延时执行时间,默认为0,即立即执行,设置了该值后才执行延时操作。单位:分。 - 超时告警 - 该开关默认关闭。打开超时告警开关,可设定超时时长,并选择至少一个超时策略。 - 选择超时告警策略,当任务运行时长超过设置的超时时长后,系统将向指定的告警组发送通知。 
- 选择超时失败策略,当任务运行时长超过设置的超时时长后,该任务实例会立即失败。 
 - 任务提交节点 - 调度资源组节点(默认):任务在Workflow的调度资源组节点提交。 
- EMR集群worker节点(提交到Yarn执行):任务在EMR集群的Worker节点提交,占用一个YARN Container。 警告- 该模式会直接影响EMR集群的文件系统或运行环境,请谨慎操作。 - 使用该模式,您还可以选择配置以下参数: - 调度队列:指定任务提交的YARN队列。 
- 任务执行容器内存(MB):指定任务执行容器的内存。默认值为1024。 
- 虚拟核数:指定任务执行容器的虚拟核数(vCores)。默认值为1。 
- 优先级:指定任务执行容器的优先级(0-100)。默认值为0,数值越大,优先级越高。 
- 执行用户:默认提交任务的用户为dolphinscheduler。标准集群(非高安全集群),如果需要设置执行用户,请确保YARN服务包含如下配置项: - yarn.nodemanager.container-executor.class=org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor 
- yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users=false 
 
 
 说明- 在执行与YARN密切相关的大数据任务(如Spark、Hive、Sqoop等)时,建议任务提交节点选择为EMR集群worker节点(提交到Yarn执行)的方式提交任务,以充分利用YARN的资源调度和管理能力。 - 脚本 - 您自定义的Shell程序。 - 资源 - 选择任务执行时所需的资源文件,请确保您已在资源中心的文件管理页面,创建或者上传了相应的文件。选择所需文件后,您可以在任务脚本中通过完整路径引用它们。例如, - path/to/test.txt。- 自定义参数 - 任务自定义参数,会替换脚本中 - ${变量}的内容。更多参数配置信息,请参见参数说明。- 前置任务 - 设置当前任务的前置(上游)任务。 
- (可选)配置任务之间的依赖关系。 - EMR Workflow支持流程间的自定义任务依赖。 - 单击任务节点右侧的  图标可以连接任务。 图标可以连接任务。
- 选中连接线或节点,单击右上角的  图标,可以删除任务间的依赖关系或节点。 图标,可以删除任务间的依赖关系或节点。
 
- 保存工作流定义。 - 单击右上角的保存。 
- 在弹出的对话框中,配置相关的参数,单击确定。 - 参数 - 说明 - 工作流名称 - 工作流的名称。 - 描述 - 当前工作流的功能描述。 - 超时告警 - 默认关闭。打开超时告警开关,需填写超时时长,如果任务执行时间超过超时时长,则会发送告警。 - 执行策略 - 支持以下策略: - 并行(默认):如果由同一个工作流定义生成了多个工作流实例,则并行执行工作流实例。 
- 串行等待:如果由同一个工作流定义生成了多个工作流实例,则串行执行工作流实例。 
 - 全局变量 - 是指针对整个工作流的所有任务节点都有效的参数。 
 
工作流定义操作
在工作流定义页面,您可以进行以下操作。
| 操作 | 说明 | 
| 编辑 | 只能编辑处于下线状态的工作流定义。 | 
| 运行 | 只有上线状态的工作流能够运行,但不能编辑。运行工作流的具体操作,请参见运行工作流。 | 
| 定时 | 只有上线的工作流可以定时,系统自动定时调度工作流运行。创建定时后的状态为上线,需在定时管理页面上线定时才生效。定时工作流的具体操作,请参见定时工作流。 | 
| 更多 | 
 | 
运行工作流
每运行一次工作流,在工作流实例页面都会产生一个工作流实例。
- 单击操作列的运行。 
- 在弹出的对话框中,配置相关参数,单击确定。 - 参数 - 说明 - 失败策略 - 当某一个任务节点执行失败时,其他的任务节点需要执行的策略。 - 继续:某一任务失败后,其他任务节点正常执行。 
- 结束(默认):某一任务失败后,终止其下游任务。 
 - 通知策略 - 当流程结束,根据流程状态发送流程执行信息通知邮件。通知策略包含都不发(默认),成功发,失败发,成功或失败都发。 - 流程优先级 - 流程运行的优先级。支持以下级别: - HIGHEST:最高。 
- HIGH:高。 
- MEDIUM(默认):中。 
- LOW:低。 
- LOWEST:最低。 
 - 调度资源组 - 调度资源组用于任务的调度运行。在下拉列表中选择已有的调度资源组。 - 执行集群/模板 - 系统将根据您选定的调度资源组自动匹配已绑定的集群或集群模板。 说明- 如果执行集群/模板选择的是集群模板,则运行工作流时会按照模板创建集群,工作流结束后释放集群。此外,如果保存工作流定义时,您设置了超时告警参数,一旦工作流触发了超时告警规则,系统也会自动释放集群。如果您未设置超时告警,系统会在工作流运行超过1天后自动释放集群。 - 补数 - 指运行指定时间范围内的工作流定义,根据补数策略生成对应的工作流实例。 说明- 补数规则: 如果工作流的定时管理状态为上线,则按照定时调度设置的频率规则进行补数;否则,默认按照每天0时的频率规则进行补数。 
- 使用限制: 单次补数操作生成的工作流实例数量不超过100个。 
 - 勾选是否是补数,还需配置以下参数: - 依赖模式:支持打开和关闭(默认)。是否触发下游依赖节点依赖到当前工作流的工作流实例的补数。 - 只有当前补数的工作流实例定时状态已上线,才会触发下游直接依赖到该工作流实例的补数。 
- 执行方式 - 串行执行:指定时间范围内,从开始日期至结束日期依次执行补数,依次生成多条流程实例。 
- 并行执行(默认): 指定时间范围内,同时进行多天的补数,同时生成多条流程实例。 - 此方式下,还需配置自定义并行度参数,表示最多并行执行的实例数。每次补数的并行度上限为7。 说明- 创建工作流定义时,如果选择并行执行策略,则该工作流只能并行执行补数;如果选择串行等待执行策略,则该工作流只能进行串行执行补数。 
 
- 调度日期:指定该工作流运行的时间范围。 
 - 全局参数 - 在启动新的流程实例时,设置或覆盖全局参数的值。 - 是否空跑 - 判断是否空跑,空跑则打印日记,直接按成功处理。 
- 在左侧导航栏,选择实例运维>工作流实例,可以查看实例的运行状况。 
导入工作流
- 在页面,单击导入。 
- 单击上传,选择导出到本地的工作流(.json文件),单击确定。 
定时工作流
- 在工作流定义页面,单击目标工作流定义操作列的定时。 
- 在弹出的对话框中,设置相关参数,单击确定。 - 起止时间:在起止时间范围内,定时运行工作流;不在起止时间范围内,不再产生定时工作流实例。 
- 定时:选择执行的时间。 
 
- 开启定时状态列的开关。