pipeline-frameworks-cromwell-03.原生调度系统

需要注意几个点:

  1. cromwel在进行任务投递时,会构建一个临时的工作目录,用于存储任务的中间文件,因此,我们需要保证工作目录的权限和空间足够。
  2. cromwell存储每个任务的状态和任务间的逻辑关系,如果没有部署数据库,这部分信息会存储到内存中,因此如果没有部署数据库,需要确保内存足够支撑任务的运行,否则可能会出现内存爆掉的问题。

Run 模式投递

wdl本身有多种投递模式,其中最简单的是直接再前台进行任务的投递(run模式)

1
2
3
4
5
6
java -Xms512m -Xmx1g \
-Dconfig.file=cromwell-87.cfg \
-jar cromwell-87.jar \
run \
pipeline.wdl \
-i pipeline.input

这种模式,是直接进行单次的任务投递,执行简单无需额外的配置,但是在任务执行过程中,会占用前台的资源,如果任务复杂(task多)或并行的数据多,会导致内存爆掉。

因此,再非测试阶段,最好使用Server Mode进行任务的投递,将任务投递到后台进行执行。

Server Mode 投递

进行后台投递时候,我们首先需要启动一个后台服务

1
2
3
4
5
nohup java -Xmx512m \
-Dconfig.file=cromwell-87.server.cfg \
-jar cromwell-87.jar \
server \
> cromwell.log 2>&1 &

启动服务后,我们可以通过submit命令进行任务的投递

1
2
3
4
5
6
7
8
9
10
11
12
outdir="Server_test"
cromwell="cromwell-87.jar"
cromwell_config="cromwell-87.server.cfg"
wdl="pipeline.wdl"
wdl_config="pipeline.input"

/share/app/java/jdk-15/bin/java -Xmx512m \
-Dconfig.file=${cromwell_config} \
-jar ${cromwell} \
submit ${wdl} \
-i ${wdl_config} \
> ${outdir}/cromwell.log \

-------------本文结束感谢您的阅读-------------