创建分析作业
创建分析作业有以下几种不同的方式,您可以任选其中一种方式。
如果在创建应用时打开了“并发”开关,可以设置多个参数值,批量执行作业。
可通过在
页面将计算节点的标签设置为copy-in,实现作业运行于指定的计算节点中。对于“不可调度”状态的计算节点,将无法在此节点运行作业。通过“新建流程”时创建
- 在“工具”页面,单击“新建流程”,填写流程信息。请参考新建流程操作。
- 流程搭建完成后,单击“新建作业”。
图1 新建作业
- 在新建作业弹窗中单击“确定”。
图2 新建作业
- 在弹出的作业设置页面,填写作业信息。“作业名称”、“标签”、和“描述”,选择需要执行的流程,设置“输出路径”、“优先级”、“计算节点标签”、“超时时间”、“加速类型”。设置完成后单击“确定”。
- 基本信息:包含作业名称、标签、描述。
- 流程名称:显示已创建的流程名称,不可编辑。
- 输出路径:存放输出结果的路径,格式以/开头。例如项目中的output文件夹,输出路径可设置为/output。不填写路径时,默认以“作业名-UUID”格式生成输出路径。
- 优先级:运行优先级,分为0~9级,优先级高的作业会被优先执行。默认值为0。
如果当前投递的IO加速的作业,超过sfs总的作业配额数, 那么超出部分的作业会按照投递时间顺序,从最新投递的向前执行,不会按照优先级进行运行。
- 计算节点标签:作业会调度到含有相应标签的计算节点上。
当应用也配置了标签,如果应用和作业的计算节点标签在同一计算节点上,则应用调度至该计算节点上;应用和它的作业,不管节点标签是否一致,都会被调度到应用的节点标签所对应的计算节点上。
如果设置了不存在的计算节点标签,作业会进入等待,直至配置了相应的标签。
- 超时时间:作业运行时间超过设置时间时,认为超时,默认1440分钟,最大可设置为144000分钟,即作业运行至多100天。
- 加速类型:
加速效率:IO加速>本地盘加速>无
- 无:作业运行于OBS中,不使用加速。
- IO加速:IO加速使用弹性文件服务(SFS)提供高性能的数据读写,作业运行时,会将非最终结果的数据存储在SFS中用以提高任务运行效率,作业执行完成后会清理释放SFS空间。对于涉及频繁读写场景的任务建议开启IO加速,开启前需要先购买性能加速。
- 本地盘加速:使用计算节点的本地盘进行加速。使用本地盘加速时,需保证购买的计算节点带有“数据盘”。OBS桶中的数据不支持本地盘加速,使用OBS桶中数据用于本地盘加速,可能会导致作业运行失败。
- 使用OBS桶中的数据投递作业时,当数据大于40G时作业会投递失败。
- 使用OBS桶中的数据投递作业时,作业将数据copy至云硬盘后,数据变大了4096byte,导致作业投递失败。
图3 “OBS”标签代表数据引用来源为OBS桶
图4 作业设置
- (可选)配置task级别加速。
在作业详情页面,单击task下面的,在“高级参数”下面设置加速类型。
如果作业加速类型选择“无”,task加速类型可以任意选择。如果作业加速类型选择IO加速或者本地盘加速,则此处task加速类型无法设置。
图5 配置task加速
- 单击界面上方“启动作业”按钮,可以直接基于该流程创建分析作业。
通过“作业”页面创建
- 新建作业
- 单击“新建作业”,在弹出的新建作业页面,填写作业信息。“作业名称”、“标签”、和“描述”,选择需要执行的流程,设置“输出路径”、“优先级”、“计算节点标签”、“超时时间”、“加速类型”。
- 基本信息:包含作业名称、标签、描述。
- 流程名称:选择需要执行的流程。
- 输出路径:存放输出结果的路径,格式以/开头。例如项目中的output文件夹,输出路径可设置为/output。不填写路径时,默认以“作业名-UUID”格式生成输出路径。
- 优先级:运行优先级,分为0~9级,优先级高的作业会被优先执行。默认值为0。
如果当前投递的IO加速的作业,超过sfs总的作业配额数, 那么超出部分的作业会按照投递时间顺序,从最新投递的向前执行,不会按照优先级进行运行。
- 计算节点标签:作业会调度到含有相应标签的计算节点上。
当应用也配置了标签,如果应用和作业的计算节点标签在同一计算节点上,则应用调度至该计算节点上;应用和它的作业,不管节点标签是否一致,都会被调度到应用的节点标签所对应的计算节点上。
如果设置了不存在的计算节点标签,作业会进入等待,直至配置了相应的标签。
- 超时时间:作业运行时间超过设置时间时,认为超时,默认1440分钟,最大可设置为144000分钟,即作业运行至多100天。
- 加速类型:
图7 作业设置
- 填写信息确认无误后,单击“确定”,进入流程设计器页面。
- 单击输入参数图标,设置输入数据。
- 单击应用图标,弹出编辑图标,单击按钮,设置应用参数。
- 参数确认无误后,单击界面上方“启动作业”按钮,可以直接基于该流程创建分析作业。
- 单击“新建作业”,在弹出的新建作业页面,填写作业信息。“作业名称”、“标签”、和“描述”,选择需要执行的流程,设置“输出路径”、“优先级”、“计算节点标签”、“超时时间”、“加速类型”。
- 克隆作业
通过“工具”页面创建
- 在“工具”页面,流程列表中,单击“操作”列“启动作业”。在弹出的作业设置页面,填写作业信息。“作业名称”、“标签”、和“描述”,设置“输出路径”、“优先级”、“计算节点标签”、“超时时间”、“加速类型”。
- 基本信息:包含作业名称、标签、描述。
- 输出路径:存放输出结果的路径,格式以/开头。例如项目中的output文件夹,输出路径可设置为/output。
- 优先级:运行优先级,分为0~9级,优先级高的作业会被优先执行。默认值为0。
如果当前投递的IO加速的作业,超过sfs总的作业配额数, 那么超出部分的作业会按照投递时间顺序,从最新投递的向前执行,不会按照优先级进行运行。
- 计算节点标签:作业会调度到含有相应标签的计算节点上。
当应用也配置了标签,如果应用和作业的计算节点标签在同一计算节点上,则应用调度至该计算节点上;应用和它的作业,不管节点标签是否一致,都会被调度到应用的节点标签所对应的计算节点上。
如果设置了不存在的计算节点标签,作业会进入等待,直至配置了相应的标签。
- 超时时间:作业运行时间超过设置时间时,认为超时,默认1440分钟,最大可设置为144000分钟,即作业运行至多100天。
- 加速类型:
图11 启动作业
- 作业信息填写完成后,单击“确定”,进入流程设计器页面。
- 单击输入参数图标,设置输入数据。
- 单击应用图标,弹出编辑图标,单击按钮,设置应用参数。
- 参数确认无误后,单击界面上方“启动作业”按钮,可以直接基于该流程创建分析作业。
通过“上传作业”创建
通过在本地修改作业的yaml模板,运行分析作业。
- 获取作业yaml模板。
- 在“项目管理 > 作业”页签中,单击“上传作业”,在弹出的页面中下载yaml示例文件。
- 使用命令行工具,执行health get job -s命令获取创建作业的yaml模板,复制模板并保存到本地。可以保存成.yaml或.txt文件,保存为txt文件时,其内容需为yaml格式。
- 修改作业yaml模板。
在本地编写模板,模板中的参数与在EIHealth平台创建作业过程一致。
修改yaml模板时,详细的命令和参数请参见作业配置文件说明。
# 详情说明可参考API文档中作业管理-创建作业 job: name: demo-job # 作业名称,取值范围:[1,63],以小写字母开头,允许出现中划线(-)、数字和小写字母,且必须以小写字母或数字结尾 description: description # 作业描述,取值范围:输入字符最大长度为255 priority: 0 # 作业的优先级,取值范围[0,9],0最低,默认数值0 timeout: 1440 # 作业执行超时时长,取值范围: [1, 144000],单位:分钟,默认数值1440 output_dir: # 作业存储目录,不指定则在workflow的工作目录下生产job同名子目录,指定则已指定路径为准,必须以/开头,结尾不能有/ workflow_id: demo-workflow::1.0.0::gwj-test-01 # 作业依赖的组件id,组件当前仅支持流程,取值范围[1,135],支持大小写字母和数字。目前支持两种格式,特殊id:{流程名称}::{流程版本}::{源项目名称};正常id:流程id io_acc_id: # IO加速实例id,为空则不开启IO加速,设置相应加速包id将会开启加速,当id设置为:auto_schedule,则会自动调度加速包,当id设置为 local_disk,则开启本地盘加速。 node_labels: # 计算节点标签 标签个数取值范围[0-1],单个节点标签最大长度56个字符,以字母或数字开头,可以包含下划线(_)、中划线(-)、点(.)、字母和数字,且必须以字母或数字结尾 - health.label tasks: - task_name: app1-1 # 子任务实际名称,取值范围[1,32],只能以大小写字母开头,由字母、数字、中划线(-)、下划线(_)组成,以大小写字母或数字结尾。需要和已有子任务的名称一致。 inputs: - name: input-dir # 子任务的输入参数信息 values: # 子任务的参数数值,根据参数类型进行合法性校验 - 'gwj-test-01:/test' resources: # 子任务的资源配额 cpu: 0.1C # cpu申请使用量,取值范围[0.1-128],单位C,支持一位小数。对于应用,不填默认1C;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用 memory: 0.1G # 内存申请使用量,取值范围[0.1-3072],单位G,支持一位小数。对于应用,不填默认1G;对于 流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用 gpu_type: '' # gpu架构类型,取值范围 ' '|GPU|Snt9|D310。对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用 gpu: '0' # gpu申请使用量,取值范围[0-16],仅支持整数,Snt9有特殊约束,申请数量需要是0,1,2,4,8 。对于应用,不填默认0;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。 # 覆盖关系:作业->流程->应用 io_acc_type #子任务使用的IO加速类型,取值范围SFS、EVS。为空表示不使用加速。SFS表示使用io加速,EVS表示使用本地盘加速 - task_name: app1-2 inputs: - name: input-dir values: - '${app1-1.output-dir}' resources: cpu: 0.1C memory: 0.1G gpu_type: '' gpu: '0' io_acc_type: SFS
- 上传并运行作业。