Achelous 运行Spark 程序
Spark 计算框架与生物信息学
当计算规模较大的情况下,对整体计算的拆分可以有效增加计算资源利用率。尤其是Spark框架,作为目前较为主流的分布式计算框架,在生物信息领域得到了越来越多的应用。 但是相比Linux 交互式作业,Spark计算框架需要较多的配置。因此在使用和作业管理上对生物信息人员并不友好。Achelous通过对Spark框架的整合,可以使生物信息分析者,通过有限的配置完成Spark框架作业的投递、管理和开发等工作,从而降低了使用门槛,和开发障碍。
用户可以通过Achelous 平台运行 GATK-Spark任务中的实例,了解如何运行Spark程序。
Achelous 对Spark 计算框架的完美支持
Achelous 既能支持批量计算,也能支持Spark 计算。以基因计算的GATK4 为例,它的某些阶段调用了Spark 框架进行处理。
Achelous 支持用户的WDL 的任意Task 都可以使用Spark,且能够在同一个Workflow 中混合使用批量计算和Spark。
- 由于Gatk4 的Spark 需要使用HDFS,系统管理员需要部署HDFS 文件系统或者使用已经部署好的HDFS 文件系统。添加一个新的计算集群:
- 用户可以使用极道的DataMover 在存储和HDFS 之间传输数据,可以使用vol@cluster的方式在同一个Task 中混合使用共享存储和HDFS。Achelous 将做合适的路径转换和自动挂载。
- 对于Spark 任务,需要在Task 中设置合适的runtime 属性,例如:其中SparkExecutorURI 指定用户自己的Spark 的binary 的存放位置,需要在HDFS 中。UseXtaoSparkScheduler 选项将自动设置SparkMaster 到极道的环境,用户无需进行复杂的配置。
简化Spark集群搭建以及维护工作
一般生信开发人员可以通过将直接编写 WDL 使用Spark应用,高阶用户也可以通过Python、R、Scala等语言,自行开发应用。
应用实例
项目 | 说明 | 项目地址 |
---|---|---|
GATK4-Spark | GATK4内嵌了Spark运行模式,目前Achelous平台可以支持其完美运行。项目支持 Fastq 到 vcf的整体流程,也支持部分步骤的Spark模式运行(如传统BWA 、 MarkDuplicates等步骤) | https://github.com/broadinstitute/gatk |
SparkBlast | 待测试 | https://github.com/sparkblastproject/v2 |
- 更多Spark框架的生信应用,可参考: