阅读时间: 4 分钟
什么是Apache Airflow?
Apache Airflow是一个工作流引擎,它使复杂数据管道的调度和运行变得简单。它将确保你的数据管道中的每个活动都以适当的顺序和适当的资源来执行。
Airflow是一个工作流平台,允许你定义、执行和监控工作流。一个工作流程可以被定义为你为完成一个给定的目标而采取的任何一系列步骤,因此它每天可以执行成千上万的不同活动,从而实现更有效的工作流程管理。
使用Apache Airflow的优势
让我们来分析一下使用Apache Airflow的所有优势。
开源。Airflow可以免费下载和使用,你可以与社区中的其他人进行合作。
云整合。Airflow可以有效地与云环境集成,从而为您提供广泛的可能性。
可扩展性。Airflow在纵向和横向上都具有极强的可扩展性,它可以在单台服务器上运行,可以扩展到有许多节点的大型部署。
灵活和可定制。Airflow可与大多数软件开发环境的基本架构配合使用,但其灵活性允许广泛的定制选项。
监控能力。Airflow允许多样化的监控方式。例如,用户界面可以显示你的任务的状态。
**代码优先的平台。**Airflow依赖于代码,这使得我们有能力创建任何我们想在管道的每个阶段执行的功能。
Apache Airflow中的关键概念
DAG。
在Airflow中,我们定义了工作流,这些工作流是用Dag来定义的,而且这些Dag由我们想要执行的任务和它们之间的相互依赖关系组成。
例如,我们可以创建一个DAG来表达任务X、Y和Z之间的依赖关系,我们希望在任务Y执行后才执行任务Z,但任务X可以独立执行。
DAG RUN。
每当Dags执行时,我们称之为Dag运行。假设我们想在每5小时后执行一个DAG。该DAG的每一次实例化都会建立一个DAG运行。可以有多个Dag运行,连接到一个Dag。
任务。
任务是几种具有不同复杂程度的操作者的实例化。它们是DAG中的工作单位。它们显示了在工作流的每个阶段所做的工作,实际工作由运算符来定义。
操作员。
操作员描述工作,而DAG定义工作流程。一个操作者类似于一个执行特定操作的类。BaseOperator是所有操作者的根。
不同类型的操作者**。**
- 执行一个行动或请求不同系统执行一个行动的操作者。
- 将数据从一个系统移动到另一个系统的操作符。
钩子。
钩子允许Airflow与第三方系统进行交互,从而允许Airflow与MYSQL等数据库和其他外部APIS连接。信息不存储在钩子中,因为它是不安全的,因此所有的信息都存储在Airflows加密的元数据数据库中。
Airflow是如何工作的?
有四个主要组成部分的Airflow。
调度器。调度器跟踪所有的DAG和它们的任务。当一个任务的依赖关系满足时,调度器将启动该任务,并定期检查活动任务的启动。
网络服务器。网络服务器作为Airflow的用户界面。它显示工作状态,并允许用户与数据库互动,以及从远程文件存储中读取日志文件。
元存储(Metastore)。Metastore是一个数据库,所有与Airflow和我们的数据相关的元数据都存在于此。它为其他组件之间的互动提供动力。存储有关每个任务的状态的信息。
执行器。执行器是一个与调度器紧密相连的进程,它决定了实际要执行任务的工作进程。
Apache Airflow的安装
安装Apache Airflow需要我们首先安装 "python-pip"。要安装pip,请执行下面的命令。
sudo apt-get install python3-pip
使用pip安装Apache Airflow。
pip3 install apache-airflow
Apache Airflow需要一个数据库在后台持续运行。
airflow initdb
要启动Apache Airflow Webserver。
airflow webserver -p 8080
现在我们要启动Apache Airflow调度器。
airflow scheduler
要访问Airflow仪表板。
打开网络浏览器,然后去打开。
http://localhost:8080/admin/
如果你在访问localhost时看到上述图片,说明Airflow已经成功地安装在你的系统上。
请继续关注更多关于Apache Airflow的博客:https://blog.knoldus.com/