WDL-第1讲

作者: MR来了 | 来源:发表于2021-03-24 11:04 被阅读0次

    WDL后续一系列学习笔记均来自官方文档

    本讲主要分为:

    • 1.1 初识WDL
    • 1.2 Cromwell参数
    • 1.3 Cromwell运行的两种模式

    1.1 初识WDL

    初步认识WDL,是 Workflow Description Language的缩写,有时也写作 Workflow Definition Language,是美国 Broad Institute 推出的工作流描述语言。它很好的规范了目前串写流程的弊端,使得写出来的pipeline比较规范而且易于看懂。此外它适合很多平台,移植性高,能出来大规模投递任务。但是弊端就是不够灵活和中文学习资料很少。

    1.2 Cromwell参数

    对WDL语言进行解析是Cromwell, 用java撰写的一个jar,它可以投递和监控任务,说白了它是把撰写好的WDL描述的任务投递上去并进行监控,而且提供了丰富的API,对于Cromwell, 我们先看看它相关的参数:

    cromwell 29
    Usage: java -jar /path/to/cromwell.jar [server|run] [options] <args>...
    
      --help                   Cromwell - Workflow Execution Engine
      --version                
    Command: server, 投递模式
    Starts a web server on port 8000.  See the web server documentation for more details about the API endpoints.
    Command: run [options] workflow-source, 直接运行模式
    Run the workflow and print out the outputs in JSON format.
      workflow-source          Workflow source file or workflow url , 输入写好的WDL文件
      --workflow-root <value>  Workflow root
      -i, --inputs <value>     Workflow inputs file, 一般记录输入文件
      -o, --options <value>    Workflow options file, 一般记录运行时候的参数
      -t, --type <value>       Workflow type, 就是'-t wdl'
      -v, --type-version <value>, wdl的语言版本,目前程序忽略
                               Workflow type version.
      -l, --labels <value>     Workflow labels file.
      -p, --imports <value>    A zip file to search for workflow imports, 引用其他WDL
      -m, --metadata-output <value>
                               An optional JSON file path to output metadata.
    

    1.3 Cromwell运行的两种模式

    类似我们经常写的sh脚本,WDL也是分为投递server mode和直接运行run mode两种模式。

    server mode的优势:

    • 可以并行处理多个 workflow,适用于生产环境
    • 有 Call caching 等高级特性,优化 workflow 的执行
    • 提供丰富的 workflow metadata,来展示 workflow 的执行过程
    ## 先命令启动一个 HTTP server
    java -Dconfig.file=application.conf -jar cromwell.jar server
    ## 使用 RESTful API 提交工作流到 server 执行
    java -jar cromwell.jar submit -t wdl -i input.json -o option.json -h http://localhost:8000
    

    run mode

    ## 用来执行单个 WDL,适用于调试初期,快速执行一个WDL
    java -jar cromwell.jar run echo.wdl --inputs input.json
    

    相关文章

      网友评论

        本文标题:WDL-第1讲

        本文链接:https://www.haomeiwen.com/subject/movchltx.html