Airflow部署-从安装到Task创建

环境配置

Ubuntu

Python 2.7

安装步骤

设置基础的默认路径:export AIRFLOW_HOME=~/airflow,这是将默认的路径设置成为根路径下的airflow的文件夹下面(也是默认设置),如果你想要将文件保存其他地方,如根目录下的test目录下,那么就设置 export AIRFLOW_HOME=~/test。

开始安装:pip install airflow

初始化配置:pip initdb,这个时候会出现如下圈出的文件


接下来我们需要再这个文件夹下面创建一个dags文件夹:cd ~/airflow  mkdir dags

在dags目录创建一个test.py文件:touch test.py,并且加入如下的代码:


启动web 服务:airflow webserver –p 3004, 启动服务后我们可以看到下面这个界面


然后我们开始启动调度:airflow scheduler


现在基本的airflow已经部署成功


配置文件


我们可以在airflow文件夹下面可以看到airflow.cfg的文件


我们可以打开发现内容如下:


我们可以从文件中可以看到,config文件主要包含着[core], [cli], [api], [lineage], [atlas], [operators], [hive],

[webserver], [email], [smtp], [celery], [celery_broker_transport_options],

[dask], [shceduler], [ldap], [mesos], [github_enterprise], [admin], [elasticsearch],

[kubernetes], [kubernetes_secrets], [kubernetes_node_selectors]这些模块


在这么多模块中,先介绍下几个重要的配置:

[core] 下面的executor配置:airflow执行任务的方式,在配置中一共有5个选项(SequentialExecutor, LocalExecutor, CeleryExecutor, DaskExecutor,

KubernetesExecutor)

表示单进程顺序执行,通常用来测试用的

表示多进程本地执行,它用Python的多进程库从而达到多进程跑任务的效果

表示使用celery作为执行器,只要配置了celery,就可以分布式的部署跑任务,一般用于生产环境

后面两个没有找到相关的资料,打扰了~~

关于celery安装

使用pip安装:pip install airflow[celery]

由于celery需要设置broker和result队列来保存消息(celery支持多种broker),在这里我们需要安装redis,redis安装教程:http://www.runoob.com/redis/redis-install.html


同时,对airflow.cfg文件进行配置:

Executor = CeleryExecutor

Broler_rul = 你的redis地址

Celery_resul_backend = 你的redis地址

关于数据库的设置


当我们在使用airflow initdb的时候,我们会默认的生成一个sqllite文件


如果你想切换成mysql或者其他数据库:

1. 安装你需要切换的数据库所需要的包,这里选择的是mysql:pip install airflow[mysql]

2. 修改配置文件:sql_alchemy_comm = 你的mysql数据库连接

关于登录模块


1. 首先,我们需要安装登录模块所需要的安装包:pip install airflow[password]

2. 修改配置文件airflow.cfg的[webserver]模块:

Authenticate = True

Auth_backend = airflow.contrib.auth.backends.password_auth


最后通过python运行下面的代码


创建多task任务

一般情况下,我们创建task任务的时候需要一个个的去定义,然后通过设置set_downstream或者set_upstream的方式去创建工作流,但是这样工作量却显得太大(万一task很多的时候),如下:


我们可以通过如下代码去设置:


通过locals()生成变量名。

给任务函数参数设置

在使用PythonOperator的时候,如何给python_callable添加参数,我们进入PythonOperator函数定义可以看到:



所以我们只要通过设置参数op_args(list) 或者op_kwargs(dict)就可以设置回调函数的参数:


你可能感兴趣的:(Airflow部署-从安装到Task创建)