美文网首页编排调度
Airflow部署-从安装到Task创建

Airflow部署-从安装到Task创建

作者: 走虾观花 | 来源:发表于2019-03-01 17:50 被阅读0次

    环境配置

    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创建

        本文链接:https://www.haomeiwen.com/subject/rbgkjqtx.html