相关概念
-
执行器(Executor)
Airflow本身是一个综合平台,它兼容多种组件,所以在使用的时候有多种方案可以选择。比如最贵案件的执行器有四种选择:- SequentialExecutor: 单进程顺序执行任务,默认执行器,通常只用于测试
- LocalExecutor: 多进程本地执行任务
- DaskExecutor: 动态任务调度,主要用于数据分析
- CeleryExecutor: 分布式调度,生产常用
-
任务处理器
operator描述了工作流中的一个task,是一个抽象的概念,相当于抽象task定义
Airflow内置了丰富的任务处理器,用于实现不同类型的任务:- BashOperator:执行bash命令
- PythonOperator:调用python代码
- EmailOperator: 发送邮件
- HTTPOperator:发送HTTP请求
- SqlOperator: 执行SQL命令
除了这些基础的构建模块外,还有更多的特定处理器:DockerOperator,HiveOperator, S3FileTransferOperator, PrestoToMysqlOperator,SlackOperator
-
角色
- webserver: 提供web端服务,以及会定时生成子进程去扫描对应目录下的dags,并更新数据库
- scheduler: 任务调度服务,根据dags生成任务,并提交到消息中间件队列中(redis或rabbitMq)
- celery worker: 分布在不同的机器上,作为任务真正的执行节点。通过监听消息中间件redis或者rebbiMq领取任务
- flower:监控worker进程的存活性,启动或关闭worker进程,查看运行的task
常用管理airflow命令
airflow test dag_id task_id execution_date 测试task
示例: airflow test example_hello_world_dag hello_task 20200226
airflow run dag_id task_id execution_date 运行task
airflow run -A dag_id task_id execution_date 忽略依赖task运行task
airflow trigger_dag dag_id -r RUN_ID -e EXEC_DATE 运行整个dag文件
airflow webserver -D 守护进程运行webserver
airflow scheduler -D 守护进程运行调度
airflow worker -D 守护进程运行celery worker
airflow worker -c 1 -D 守护进程运行celery worker并指定任务并发数为1
airflow pause dag_id 暂停任务
airflow unpause dag_id 取消暂停,等同于在管理界面打开off按钮
airflow list_tasks dag_id 查看task列表
airflow clear dag_id 清空任务实例