由于机器学习各流程时长较长,并且流程比较复杂,经过选型对比,决定选用airflow作为流程调度器
一、选型对比
网上有较详细的各种流程调度器特性对比:https://www.jdon.com/workflow/Airflow-vs-Azkaban-vs-Conductor-vs-Oozie-vs-Amazon-Step-Functions.html
个人选择airlfow作为机器学习流程调度器主要原因是:python代码调试修改非常方便,特别适合流程较长,容易出问题,需要紧急修复的系统
二、部署架构
1)整个服务以微服务的方式部署在K8s上面,借助k8s调度器保证Scheduler、web挂掉以后自动重新拉起
2)需要共享存储保证worker、rabbitmq集群挂掉以后重启数据不丢失
三、基本使用方式
1)定义DAG
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'