• Apache Airflow (二) : Airflow单机搭建


    🏡 个人主页IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客

     🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。

     🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频


    目录

    1. 安装Anconda及python3.7

    2. 单机安装Airflow

    ​​​​​​​3. 启动Airflow


    Airflow是基于Python的,就是Python中的一个包。安装要求Python3.6版本之上,Metadata DataBase支持PostgreSQL9.6+,MySQL5.7+,SQLLite3.15.0+。

    ​​​​​​​1. 安装Anconda及python3.7

    1) 官网下载Anconda ,选择linux版本,并安装

    下载官网地址:https://www.anaconda.com/products/individual#macos

    2) 将下载好的anconda安装包上传至mynode4节点,进行安装

    1. sh Anaconda3-2020.02-Linux-x86_64.sh  【一路回车即可】
    2. Do you accept the license terms? [yes|no]
    3. Yes【继续回车】
    4. ... ...
    5. Anaconda3 will now be installed into this location:
    6. /root/anaconda3
    7.   - Press ENTER to confirm the location
    8.   - Press CTRL-C to abort the installation
    9.   - Or specify a different location below
    10. [/root/anaconda3] >>> 【回车即可,安装到/root/anaconda3路径下】
    11. ... ...
    12. Do you wish the installer to initialize Anaconda3
    13. by running conda init? [yes|no]
    14. [no] >>>yes【输入yes,回车即可】
    15. ... ...
    16. 【安装完成】

    3)配置Anconda的环境变量

    1. 在 /etc/profile中加入以下语句:
    2. export PATH=$PATH:/root/anaconda3/bin
    3. #使环境变量生效
    4. source /etc/profile

    4) 安装python3.7 python环境

     conda create -n python37 python=3.7

    5) 激活使用python37 python环境

    conda activate python37【激活使用python37环境,需要先执行下source activate】

    相关命令如下:

    1. source activate 【初始化conda,必须执行,执行之后可以使用conda命令激活环境】
    2. conda deactivate 【退出当前base环境】
    3. conda activate python37【激活使用python37环境】
    4. conda deactivate 【退出当前使用python37环境】
    5. conda remove -n python37 --all 【删除python37环境】

    2. 单机安装Airflow

    单节点部署airflow时,所有airflow 进程都运行在一台机器上,架构图如下:

    1) 安装Airflow必须需要的系统依赖

    Airflow正常使用必须需要一些系统依赖,在mynode4节点上安装以下依赖:

    yum -y install mysql-devel gcc gcc-devel python-devel gcc-c++ cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib

    2) 在MySQL中创建对应的库并设置参数

    aiflow使用的Metadata database我们这里使用mysql,在node2节点的mysql中创建airflow使用的库及表信息。

    1. CREATE DATABASE airflow CHARACTER SET utf8;
    2. create user 'airflow'@'%' identified by '123456';
    3. grant all privileges on airflow.* to 'airflow'@'%';
    4. flush privileges;

    在mysql安装节点node2上修改”/etc/my.cnf”,在[mysqld]下添加如下内容:

    1. [mysqld]
    2. explicit_defaults_for_timestamp=1

    注意:以上配置explicit_defaults_for_timestamp 系统变量决定MySQL服务端对timestamp列中的默认值和NULL值的不同处理方法。此变量自MySQL 5.6.6 版本引入,默认值为0,在默认情况下,如果timestamp列没有显式的指明null属性,那么该列会被自动加上not null属性,如果往这个列中插入null值,会自动的设置该列的值为current timestamp值。当这个值被设置为1时,如果timestamp列没有显式的指定not null属性,那么默认的该列可以为null,此时向该列中插入null值时,会直接记录null,而不是current timestamp,如果指定not null 就会报错。

    在Airflow中需要对应mysql这个参数设置为1。以上修改完成“my.cnf”值后,重启Mysql即可,重启之后,可以查询对应的参数是否生效:

    1. #重启mysql
    2. [root@node2 ~]# service mysqld restart
    3. #重新登录mysql查询
    4. mysql> show variables like 'explicit_defaults_for_timestamp';

    3) 安装Airflow

    在node4上切换python37环境,安装airflow,指定版本为2.1.3

    1. (python37) [root@node4 ~]# conda activate python37
    2. (python37) [root@node4 ~]# pip install apache-airflow==2.1.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

    默认Airflow安装在$ANCONDA_HOME/envs/python37/lib/python3.7/site-packages/airflow目录下。Airflow文件存储目录默认在/root/airflow目录下,但是这个目录需要执行下“airflow version”后自动创建,查看安装Airflow版本信息:

    1. (python37) [root@node4 ~]# airflow version
    2. 2.1.3

    注意:如果不想使用默认的“/root/airflow”目录当做文件存储目录,也可以在安装airflow之前设置环境变量:

    1. (python37) [root@node4 ~]# vim /etc/profile
    2. export AIRFLOW_HOME=/software/airflow
    3. #使配置的环境变量生效
    4. source /etc/profile

    这样安装完成的airflow后,查看对应的版本会将“AIRFLOW_HOME”配置的目录当做airflow的文件存储目录。

    4) 配置Airflow使用的数据库为MySQL

    打开配置的airflow文件存储目录,默认在$AIRFLOW_HOME目录“/root/airflow”中,会有“airflow.cfg”配置文件,修改配置如下:

    1. [core]
    2. dags_folder = /root/airflow/dags
    3. #修改时区
    4. default_timezone = Asia/Shanghai
    5. # 配置数据库
    6. sql_alchemy_conn=mysql+mysqldb://airflow:123456@node2:3306/airflow?use_unicode=true&charset=utf8
    7. [webserver]
    8. #设置时区
    9. default_ui_timezone = Asia/Shanghai
    10. #设置DAG显示方式
    11. # Default DAG view. Valid values are: ``tree``, ``graph``, ``duration``, ``gantt``, ``landing_times``
    12. dag_default_view = graph
    13. [scheduler]
    14. #设置默认发现新任务周期,默认是5分钟
    15. # How often (in seconds) to scan the DAGs directory for new files. Default to 5 minutes.
    16. dag_dir_list_interval = 30

    5) 安装需要的python依赖包

    初始化Airflow数据库时需要使用到连接mysql的包,执行如下命令来安装mysql对应的python包。

    1. (python37) [root@node4 ~]# pip install mysqlclient -i Simple Index

    6) 初始化Airflow 数据库

    (python37) [root@node4 airflow]# airflow db init

    初始化之后在MySQL airflow库下会生成对应的表。

    7) 创建管理员用户信息

    在node4节点上执行如下命令,创建操作Airflow的用户信息:

    1. airflow users create \
    2.     --username airflow \
    3.     --firstname airflow \
    4.     --lastname airflow \
    5.     --role Admin \
    6.     --email xx@qq.com

    执行完成之后,设置密码为“123456”并确认,完成Airflow管理员信息创建。

    ​​​​​​​3. 启动Airflow

    1) 启动webserver

    1. #前台方式启动webserver
    2. (python37) [root@node4 airflow]# airflow webserver --port 8080
    3. #以守护进程方式运行webserver,端口默认8080。 ps aux|grep webserver查看后台进程
    4. airflow webserver --port 8080 -D

    2) 启动scheduler

    新开窗口,切换python37环境,启动Schduler:

    1. #前台方式启动scheduler
    2. (python37) [root@node4 ~]# airflow scheduler
    3. #以守护进程方式运行Scheduler,ps aux|grep scheduler 查看后台进程
    4.  airflow scheduler -D

    3) 访问Airflow webui

    浏览器访问:http://node4:8080 

    输入前面创建的用户名:airflow 密码:123456


  • 相关阅读:
    织梦如何用dede:type调用指定一个栏目的描述
    java-net-php-python-jspm综合彩妆店管理系统查重PPT计算机毕业设计程序
    Prometheus完整安装
    【2023全网最全教程】web自动化测试入门
    六、鼎捷T100成本计算后自动勾稽查询作业(成本纠错)
    WMS仓储管理系统的功能有哪些?
    同步与异步的区别和ajax的使用方法
    微信小程序的tabbar怎么配置
    基于YOLOv5的双目测距——代码讲解
    Super Marker插件——标记资源,提高效率
  • 原文地址:https://blog.csdn.net/qq_32020645/article/details/134299675