Achelous 作业管理工具
作为针对生物信息使用需求开发的作业管理平台,Achelous 为使用者提供了强大的作业管理功能。下面将向用户展示作业管理中基本概念,以及常规操作。
使用前的环境配置
在使用 biocli 之前,用户需要先配置服务器地址。可通过以下命令设置:
biocli env set server <server-address>
其中 <server-address> 为 bioflow 服务器的地址,如 localhost:9090。
例如:
[demo@Cc1Xtcls]$ biocli env set server 10.61.52.195:9090
设置完成后,可通过以下命令确认配置:
[demo@Cc1Xtcls]$ biocli env get
endpoints:
server: 10.61.52.195:9090
biocli env set <key> <value>:设置环境配置,key 支持endpoints和serverbiocli env get [--key="all"]:获取环境配置,可指定 key 名称(endpoints/server/all)
注意:如未配置 server 地址,执行 biocli 命令时会提示 "Please set env first."。
作业管理的基本概念
job-id : 对于多用户环境下,Achelous 会为每个投递的任务分配一个ID,其构成为32位字符。此id为作业的唯一标识。用户对于作业的状态查询,暂停,修改权限等操作,均需要以job-id为依据。注意:截取job-id的一部分,如果其唯一,则也可以进行相应的作用
job-name : 用户可为自己提交的作业任意命名,作业名称不具有查询效果
task-id : 由于job 中存在多个task 。因此,Achelous 中每个task 也有相应的ID 。但task-id 一般不能直接使用,需要通过结合job-id 进行查询。
作业优先级 : 作业优先级与Linux 中进程优先级类似。其取值为 0 - 10 ,数值越大,对应的优先级越高。在计算资源有限的情况下,优先级高的任务会先被执行。
使用Achelous 提交作业
用户可通过下面的命令进行作业提交。
biocli job submit [选项] <file>
其中:
<file>为作业文件,支持 JSON 和 YAML 格式-y/--yaml:作业文件为 YAML 格式-v/--env:配置作业任务使用提交用户的环境变量
作业文件中记录了作业相关信息,包括作业名称、作业使用的Pipeline 、作业描述、作业相关输入及参数、优先级等信息,JSON 格式如下:
{
"Name" : "My_first_WDL_job",
"Pipeline" : "demo_pipeline",
"InputDataSet" : {
"WorkflowInput" : {
"fastqtobam.fastq1" : "",
"fastqtobam.fastq2" : "",
"fastqtobam.ref" : ""
}
},
"Priority" : 7
}
作业正确提交后会返回作业的job-id,用于后续对此作业的操作。例如:
[demo@Cc1Xtcls]$ biocli job submit my.demo.job.json
The job added success, job ID is: d0a35ca2-192a-4b31-7082-9df4bd49cf8c
结果中 d0a35ca2-192a-4b31-7082-9df4bd49cf8c 为该任务的 job-id
使用Achelous 查看作业列表
用户可通过以下命令查看作业列表。
biocli job list [选项]
其中:
-a/--all:列出运行中作业和历史作业-o/--old:仅列出历史作业-i/--name="":按作业名称筛选-F/--finish:时间筛选关联完成时间(默认关联创建时间)-S/--span=SPAN:时间范围筛选,格式[2017-06-01 12:00:00, 2017-07-01 12:00:00];使用横线(或空)设置单边条件-p/--pipeline="":按流程名称筛选-n/--count=COUNT:显示作业数量-r/--priority=-1:按优先级筛选-t/--state="":按作业状态筛选
例如:
[demo@Cc1Xtcls]$ biocli job list -a -n 10
JobID Name Pipeline State Priority
d0a35ca2-192a-4b31-7082-9df4bd49cf8c My_first_WDL_job demo_pipeline RUNNING 7
e1b46db3-203b-5c42-8193-aef5ce50df9d filter_job FILTER COMPLETE 5
[demo@Cc1Xtcls]$ biocli job list -t RUNNING -p demo_pipeline
使用Achelous 查看作业状态
用户可通过以下命令对已经成功提交的作业进行状态查看。
biocli job status [选项] <job-id>
其中:
job-id为提交作业的作业id-d/--detail:显示详细信息-w/--wait:显示等待中的 stages-p/--perf:显示性能数据-o/--output:显示作业输出
例如:
[demo@Cc1Xtcls]$ biocli job status d0a35ca2-192a-4b31-7082-9df4bd49cf8c -d
Status of Job d0a35ca2-192a-4b31-7082-9df4bd49cf8c:
Name: MY_DEMO_JOB
Pipeline: FILTER
State: RUNNING
Owner: demo
WorkDir: vol1@xtao:/Demo_data/batch-runs/job-FILTER-d0a35ca2-192a-4b31-7082-9df4bd49cf8c
PausedState: N/A
Created: 2021-05-20T12:14:25Z
Finished: N/A
RetryLimit: 3
RunCount: 1
UserStageCount: 0
StageQuota: -1
Priority: 7
FailReason:
GraphBuildStatus: Completed
DoneStages: No stage done
RunningStages: 23
使用Achelous 监控作业
实时监控作业状态
biocli job monitor [选项]
-p/--perf:显示每个任务的性能数据-n/--num=NUM:显示任务的最大数量
查看作业统计信息
biocli job stats [选项]
-i/--id="*":按作业 ID 查看统计-p/--perf:显示每个任务的性能数据-m/--summary:显示汇总数据-a/--all:显示所有阶段-n/--num=-1:显示任务的最大数量
导出监控信息
biocli job dumpmonitor [-y] <file>
-y/--yaml:输出为 YAML 格式<file>:输出文件路径
使用Achelous 查看作业日志
用户可通过以下命令查看作业的错误日志。
biocli job logs [选项] <job-id>
其中:
job-id为作业 ID-T/--stage="*":按阶段名称(stage name)筛选日志-S/--stage_id="*":按阶段 ID(stage id)筛选日志-t/--task_id="*":按任务 ID(task id)筛选日志
例如:
[demo@Cc1Xtcls]$ biocli job logs d0a35ca2 -T stage-smoke1
关于通过日志进行作业调试的详细说明,请参见作业调试方法
使用Achelous 取消作业
用户可以通过以下命令,取消作业。
biocli job cancel [job-id]
其中:
- job-id 为提交作业的作业id
例如:
[demo@Cc1Xtcls]$ biocli job cancel d0a35ca2 ## 截取部分job-id 也可以作为作业唯一标识
Successfully cancel job d0a35ca2-192a-4b31-7082-9df4bd49cf8c
使用Achelous 暂停作业
用户可以通过以下命令暂停作业。
biocli job pause [job-id]
- job-id 为需要暂停的作业的job-id
暂停后的作业并没有完全结束,如果作业中存在正在运行的任务(task),那么这些任务并不会停止,而是继续执行,但作业中未被投递的任务,将暂时不再投递。
例如:
[demo@Cc1Xtcls]$ biocli job pause b5d0d361
Successfully pause job b5d0d361-04e2-4ecf-6274-594f7e9052c5
使用Achelous 恢复暂停状态中的作业
用户可以通过以下命令恢复暂停状态的作业。
biocli job resume [job-id]
- job-id 为需要恢复的作业的job-id
例如:
[demo@Cc1Xtcls]$ biocli job resume b5d0d361
Successfully resume job b5d0d361-04e2-4ecf-6274-594f7e9052c5
使用Achelous 恢复失败状态的作业
用户可以通过以下命令恢复失败状态中的作业。
biocli job recover [选项]
| 选项 | 说明 |
|---|---|
-i / --id="*" |
作业 ID,默认 *(支持批量恢复) |
-o / --opt="default" |
恢复选项:skippendingstages 或 default |
-S / --span=SPAN |
按完成时间范围筛选作业 |
-p / --pipeline="" |
按流程名称筛选 |
-n / --count=COUNT |
指定恢复作业数量 |
-r / --retry_taskid |
指定重试的 task ID(无论是否已完成) |
-e / --change_epoch |
恢复时变更 WDL 引擎的 epoch |
-c / --recover_cromwell_job |
恢复 Cromwell 作业 |
-f / --file=FILE |
Cromwell 源文件 |
-O / --options=OPTIONS |
Cromwell 选项 JSON 文件 |
-z / --zipfile=ZIPFILE |
Cromwell 导入 ZIP 文件 |
例如:
[demo@Cc1Xtcls]$ biocli job recover -i b5d0d361
关于作业失败后恢复更详细说明,请参见这篇内容
使用Achelous 终止作业中的指定任务
用户可以通过以下命令终止作业中指定的任务。
biocli job killtask [-t TASK] <job-id>
job-id为作业 ID-t/--task="*":要终止的任务 ID,默认为*(全部任务)
例如:
[demo@Cc1Xtcls]$ biocli job killtask -t paladin-task.a132c6b8 d0a35ca2
使用Achelous 重新排队作业阶段
用户可以通过以下命令将作业的某个阶段重新排队执行,同时可更新该阶段的资源配置。
biocli job requeue [选项] <job-id> <stage>
job-id为作业 IDstage为需要重新排队的阶段 ID-c/--cpu=CPU:更新该阶段的 CPU 配置-m/--memory=MEMORY:更新该阶段的内存配置
例如:
[demo@Cc1Xtcls]$ biocli job requeue -c 4 -m 8000 d0a35ca2 wk-wk.tool-tool.smoke1
使用Achelous 查看挂起的作业和任务
用户可以通过以下命令查看处于挂起状态的作业和任务。
biocli job lshangtask
使用Achelous 清理作业历史
用户可以通过以下命令清理已完成作业的历史记录。
biocli job cleanup [选项]
其中:
-a/--all:清理所有作业历史-i/--name="":按作业名称筛选-F/--finish:时间筛选关联完成时间-S/--after="":清理此时间之后创建/完成的作业-E/--before="":清理此时间之前创建/完成的作业-p/--pipeline="":按流程名称筛选-n/--count=COUNT:清理作业数量,默认 0-r/--priority=-1:按优先级筛选-t/--state="":按状态筛选-b/--boltdb:清理作业 boltdb 文件-o/--onlyboltdb:仅清理 boltdb 文件,不清理作业历史
例如:
[demo@Cc1Xtcls]$ biocli job cleanup -a
使用Achelous 重新设定优先级
用户可以通过以下命令调整作业的优先级
biocli job setpri [job-id] [priority]
- job-id 为需要调整优先级的作业 job-id priority 为优先级数值,取值范围为 0 到 10之间的整数。数值越高,优先级越高 例如:
[demo@Cc1Xtcls]$ biocli job setpri b5d0d361 8
Successfully update job b5d0d361-04e2-4ecf-6274-594f7e9052c5 priority to 8
使用Achelous 查看仪表盘
用户可以通过以下命令查看平台仪表盘信息。
biocli dashboard show [选项]
-v/--details:显示更详细的信息-q/--queue=-1:指定队列
例如:
[demo@Cc1Xtcls]$ biocli dashboard show -v