Airflow:基于DAG的任务处理平台

Airflow 是一个以编程方式创作、计划和监控工作流的平台。官方

使用 Airflow 将工作流创作为任务的有向无环图 (DAG)。Airflow 是基于DAG的任务管理系统,可以简单理解为是高级版的crontab。Airflow 计划程序在遵循指定依赖项的同时,对工作线程数组执行任务。丰富的命令行实用程序使在 DAG 上执行复杂手术变得轻而易举。借助丰富的用户界面,可以轻松可视化生产中运行的管道、监控进度并在需要时解决问题。

当工作流被定义为代码时,它们将变得更加可维护、可版本控制、可测试和协作。

Airflow 界面:

Airflow:基于DAG的任务处理平台_第1张图片

 Airflow 技术架构

Airflow:基于DAG的任务处理平台_第2张图片

 

Airflow组件构成:

  • Cheduler:它处理触发计划的工作流和将任务提交到执行程序以运行。
  • Executor:在默认的 Airflow 安装中,这会在调度程序中运行所有内容,但大多数适合生产的执行器实际上将任务执行推送给工作线程。
  • Web server:它提供了一个方便的用户界面,用于检查、触发和调试 DAG 和任务的行为。
  • DAG task目录:读取的 DAG 文件的文件夹,所有的执行任务都集中在此处。
  • Metadata database:由调度程序、执行程序和 Web 服务器用于存储状态。

Operators 的种类(重点)

Airflow提供了多种版本的运行环境,可以支持bash,python,java,sql等任务的执行,所以在大数据处理过程中,开发者可以根据自己的需要来去选择合适的语言。同时官方社区也提供了大量的基础包供大家使用,可以说进一步简化了开发任务,让程序猿更注重业务本身。以下为官方列出的开发包

  • SimpleHttpOperator

  • MySqlOperator

  • PostgresOperator

  • MsSqlOperator

  • OracleOperator

  • JdbcOperator

  • DockerOperator

  • HiveOperator

  • S3FileTransformOperator

  • PrestoToMySqlOperator

  • SlackAPIOperator

基于K8s的版本

由于Kubernetes的普及,Airflow也支持了k8s,这样更加减化了环境的运维和部署。

updating

你可能感兴趣的:(大数据架构,大数据,kubernetes)