实验环境:

centos7
python3.6

安装配置:

1.看看是否有gcc,没有的话需要进行安装:

yum install gcc  (后续安装airflow如果不成功,可以再次执行,它会更新包)【这个很重要哦】

2.安装脚本和依赖:

  1. yum install -y python36
  2. yum install -y python36-pip
  3. yum install -y python36-devel
    pip3 install paramiko
  1.  安装airflow前,还需要安装依赖的环境:
  1. yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

  安装airflow

  1. pip3 install apache-airflow
  1. 安装pymysql
  1. pip3 install pymysql

3.配置环境变量

  1. # vi /etc/profile
  2.   #airflow
  3.   export AIRFLOW_HOME=/software/airflow
  4.  
  5. # source /etc/profile

初始化

1.初始化数据库表(默认使用本地的sqlite数据库):

  1. [root@centos-slave1 centos]# airflow initdb
  2. [-- ::,] {__init__.py:} INFO - Using executor SequentialExecutor
  3. DB: sqlite:////software/airflow/airflow.db
  4. [-- ::,] {db.py:} INFO - Creating tables
  5. INFO [alembic.runtime.migration] Context impl SQLiteImpl.
  6. INFO [alembic.runtime.migration] Will assume non-transactional DDL.
  7. INFO [alembic.runtime.migration] Running upgrade -> e3a246e0dc1, current schema
  8. INFO [alembic.runtime.migration] Running upgrade e3a246e0dc1 -> 1507a7289a2f, create is_encrypted
  9. /usr/local/lib/python3./site-packages/alembic/ddl/sqlite.py:: UserWarning: Skipping unsupported ALTER for creation of implicit constraint
  10. "Skipping unsupported ALTER for "
  11. INFO [alembic.runtime.migration] Running upgrade 1507a7289a2f -> 13eb55f81627, maintain history for compatibility with earlier migrations
  12. INFO [alembic.runtime.migration] Running upgrade 13eb55f81627 -> 338e90f54d61, More logging into task_instance
  13. INFO [alembic.runtime.migration] Running upgrade 338e90f54d61 -> 52d714495f0, job_id indices
  14. INFO [alembic.runtime.migration] Running upgrade 52d714495f0 -> 502898887f84, Adding extra to Log
  15. INFO [alembic.runtime.migration] Running upgrade 502898887f84 -> 1b38cef5b76e, add dagrun
  16. INFO [alembic.runtime.migration] Running upgrade 1b38cef5b76e -> 2e541a1dcfed, task_duration
  17. INFO [alembic.runtime.migration] Running upgrade 2e541a1dcfed -> 40e67319e3a9, dagrun_config
  18. INFO [alembic.runtime.migration] Running upgrade 40e67319e3a9 -> 561833c1c74b, add password column to user
  19. INFO [alembic.runtime.migration] Running upgrade 561833c1c74b -> 4446e08588, dagrun start end
  20. INFO [alembic.runtime.migration] Running upgrade 4446e08588 -> bbc73705a13e, Add notification_sent column to sla_miss
  21. INFO [alembic.runtime.migration] Running upgrade bbc73705a13e -> bba5a7cfc896, Add a column to track the encryption state of the 'Extra' field in connection
  22. INFO [alembic.runtime.migration] Running upgrade bba5a7cfc896 -> 1968acfc09e3, add is_encrypted column to variable table
  23. INFO [alembic.runtime.migration] Running upgrade 1968acfc09e3 -> 2e82aab8ef20, rename user table
  24. INFO [alembic.runtime.migration] Running upgrade 2e82aab8ef20 -> 211e584da130, add TI state index
  25. INFO [alembic.runtime.migration] Running upgrade 211e584da130 -> 64de9cddf6c9, add task fails journal table
  26. INFO [alembic.runtime.migration] Running upgrade 64de9cddf6c9 -> f2ca10b85618, add dag_stats table
  27. INFO [alembic.runtime.migration] Running upgrade f2ca10b85618 -> 4addfa1236f1, Add fractional seconds to mysql tables
  28. INFO [alembic.runtime.migration] Running upgrade 4addfa1236f1 -> 8504051e801b, xcom dag task indices
  29. INFO [alembic.runtime.migration] Running upgrade 8504051e801b -> 5e7d17757c7a, add pid field to TaskInstance
  30. INFO [alembic.runtime.migration] Running upgrade 5e7d17757c7a -> 127d2bf2dfa7, Add dag_id/state index on dag_run table
  31. INFO [alembic.runtime.migration] Running upgrade 127d2bf2dfa7 -> cc1e65623dc7, add max tries column to task instance
  32. INFO [alembic.runtime.migration] Running upgrade cc1e65623dc7 -> bdaa763e6c56, Make xcom value column a large binary
  33. INFO [alembic.runtime.migration] Running upgrade bdaa763e6c56 -> 947454bf1dff, add ti job_id index
  34. INFO [alembic.runtime.migration] Running upgrade 947454bf1dff -> d2ae31099d61, Increase text size for MySQL (not relevant for other DBs' text types)
  35. INFO [alembic.runtime.migration] Running upgrade d2ae31099d61 -> 0e2a74e0fc9f, Add time zone awareness
  36. INFO [alembic.runtime.migration] Running upgrade d2ae31099d61 -> 33ae817a1ff4, kubernetes_resource_checkpointing
  37. INFO [alembic.runtime.migration] Running upgrade 33ae817a1ff4 -> 27c6a30d7c24, kubernetes_resource_checkpointing
  38. INFO [alembic.runtime.migration] Running upgrade 27c6a30d7c24 -> 86770d1215c0, add kubernetes scheduler uniqueness
  39. INFO [alembic.runtime.migration] Running upgrade 86770d1215c0, 0e2a74e0fc9f -> 05f30312d566, merge heads
  40. INFO [alembic.runtime.migration] Running upgrade 05f30312d566 -> f23433877c24, fix mysql not null constraint
  41. INFO [alembic.runtime.migration] Running upgrade f23433877c24 -> 856955da8476, fix sqlite foreign key
  42. INFO [alembic.runtime.migration] Running upgrade 856955da8476 -> 9635ae0956e7, index-faskfail
  43. INFO [alembic.runtime.migration] Running upgrade 9635ae0956e7 -> dd25f486b8ea
  44. INFO [alembic.runtime.migration] Running upgrade dd25f486b8ea -> bf00311e1990, add index to taskinstance
  45. INFO [alembic.runtime.migration] Running upgrade 9635ae0956e7 -> 0a2a5b66e19d, add task_reschedule table
  46. INFO [alembic.runtime.migration] Running upgrade 0a2a5b66e19d, bf00311e1990 -> 03bc53e68815, merge_heads_2
  47. INFO [alembic.runtime.migration] Running upgrade 03bc53e68815 -> 41f5f12752f8, add superuser field
  48. INFO [alembic.runtime.migration] Running upgrade 41f5f12752f8 -> c8ffec048a3b, add fields to dag
  49. INFO [alembic.runtime.migration] Running upgrade c8ffec048a3b -> dd4ecb8fbee3, Add schedule interval to dag
  50. INFO [alembic.runtime.migration] Running upgrade dd4ecb8fbee3 -> 939bb1e647c8, task reschedule fk on cascade delete
  51. INFO [alembic.runtime.migration] Running upgrade c8ffec048a3b -> a56c9515abdc, Remove dag_stat table
  52. INFO [alembic.runtime.migration] Running upgrade 939bb1e647c8 -> 6e96a59344a4, Make TaskInstance.pool not nullable
  53. INFO [alembic.runtime.migration] Running upgrade 6e96a59344a4 -> 74effc47d867, change datetime to datetime2() on MSSQL tables
  54. INFO [alembic.runtime.migration] Running upgrade 939bb1e647c8 -> 004c1210f153, increase queue name size limit
  55. Done.

2.查看其生成文件:

  1. [root@centos-slave1 centos]# cd /software/airflow/
  2. [root@centos-slave1 airflow]# ls
  3. airflow.cfg airflow.db logs unittests.cfg

3.配置MySQL数据库(创建airflow数据库,并创建用户和授权,给airflow访问数据库使用):

  1. mysql> CREATE DATABASE airflow;
  2. Query OK, row affected (0.00 sec)
  3.  
  4. mysql> GRANT all privileges on root.* TO 'root'@'localhost' IDENTIFIED BY 'root';
  5. ERROR (HY000): Your password does not satisfy the current policy requirements
    #这个错误与validate_password_policy的值有关。默认值是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

 有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为root。

 必须修改两个全局参数:

1)首先,修改validate_password_policy参数的值:

  1. mysql> set global validate_password_policy=;
  2. Query OK, rows affected (0.00 sec)
    #这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
  3.  
  4. mysql> select @@validate_password_length;
  5. +----------------------------+
  6. | @@validate_password_length |
  7. +----------------------------+
  8. | |
  9. +----------------------------+
  10. row in set (0.00 sec)

  11. 2)修改validate_password_length参数,设置密码仅由密码长度决定。
  12. mysql> set global validate_password_length=;
  13. Query OK, rows affected (0.00 sec)
  14.  
  15. mysql> select @@validate_password_length;
  16. +----------------------------+
  17. | @@validate_password_length |
  18. +----------------------------+
  19. | |
  20. +----------------------------+
  21. row in set (0.00 sec)
  22.  
  23. mysql> GRANT all privileges on root.* TO 'root'@'localhost' IDENTIFIED BY 'root';
  24. Query OK, rows affected, warning (0.35 sec)

mysql> FLUSH PRIVILEGES;
  Query OK, 0 rows affected (0.01 sec)

4.配置airflow使用LocalExecutor执行器,及使用MySQL数据库:

  1. vim airflow/airflow.cfg
  2. # The executor class that airflow should use. Choices include
  3. # SequentialExecutor, LocalExecutor, CeleryExecutor, DaskExecutor, KubernetesExecutor
  4. #executor = SequentialExecutor
  5. executor = LocalExecutor
  6.  
  7. # The SqlAlchemy connection string to the metadata database.
  8. # SqlAlchemy supports many different database engine, more information
  9. # their website
  10. #sql_alchemy_conn = sqlite:////data/airflow/airflow.db
  11. sql_alchemy_conn = mysql+pymysql://root:123456@localhost:3306/airflow

再次初始化数据库表:

  1. airflow initdb

报错:

  1. Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql

 解决方案:

更改MySQL配置

  1. vim /etc/my.cnf
  2. [mysqld]
  3. explicit_defaults_for_timestamp=

或者在数据库中运行一下语句:

  1. set @@global.explicit_defaults_for_timestamp=on;

5.查看创建的airflow数据表:

  1. mysql> use airflow;
  2. Reading table information for completion of table and column names
  3. You can turn off this feature to get a quicker startup with -A
  4.  
  5. Database changed
  6. mysql> show tables;
  7. +-------------------+
  8. | Tables_in_airflow |
  9. +-------------------+
  10. | alembic_version |
  11. | chart |
  12. | connection |
  13. | dag |
  14. | dag_pickle |
  15. | dag_run |
  16. | dag_stats |
  17. | import_error |
  18. | job |
  19. | known_event |
  20. | known_event_type |
  21. | log |
  22. | sla_miss |
  23. | slot_pool |
  24. | task_fail |
  25. | task_instance |
  26. | users |
  27. | variable |
  28. | xcom |
  29. +-------------------+
  30. rows in set (0.00 sec)

服务启动

1.添加airflow-scheduler服务启动脚本:

  1. airflow webserver
  2. airflow scheduler
  1. [root@centos-master airflow]# airflow webserver
  2. [-- ::,] {settings.py:} INFO - settings.configure_orm(): Using pool settings. pool_size=, max_overflow=, pool_recycle=, pid=
  3. [-- ::,] {__init__.py:} INFO - Using executor LocalExecutor
  4. ____________ _____________
  5. ____ |__( )_________ __/__ /________ __
  6. ____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / /
  7. ___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ /
  8. _/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/
  9. [-- ::,] {dagbag.py:} INFO - Filling up the DagBag from /software/airflow/dags
  10. Running the Gunicorn Server with:
  11. Workers: sync
  12. Host: 0.0.0.0:
  13. Timeout:
  14. Logfiles: - -
  15. =================================================================
  1. [root@centos-master airflow]# airflow scheduler
  2. [-- ::,] {settings.py:} INFO - settings.configure_orm(): Using pool settings. pool_size=, max_overflow=, pool_recycle=, pid=
  3. [-- ::,] {__init__.py:} INFO - Using executor LocalExecutor
  4. ____________ _____________
  5. ____ |__( )_________ __/__ /________ __
  6. ____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / /
  7. ___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ /
  8. _/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/
  9. [-- ::,] {scheduler_job.py:} INFO - Starting the scheduler
  10. [-- ::,] {scheduler_job.py:} INFO - Running execute loop for - seconds
  11. [-- ::,] {scheduler_job.py:} INFO - Processing each file at most - times
  12. [-- ::,] {scheduler_job.py:} INFO - Searching for files in /software/airflow/dags
  13. [-- ::,] {scheduler_job.py:} INFO - There are files in /software/airflow/dags
  14. [-- ::,] {scheduler_job.py:} INFO - Resetting orphaned tasks for active dag runs
  15. [-- ::,] {dag_processing.py:} INFO - Launched DagFileProcessorManager with pid:
  16. [-- ::,] {settings.py:} INFO - Configured default timezone <Timezone [UTC]>
  17. [-- ::,] {settings.py:} INFO - settings.configure_orm(): Using pool settings. pool_size=, max_overflow=, pool_recycle=, pid=

2.浏览器访问:http://192.168.86.160:8080

CentOS7安装Airflow的更多相关文章

  1. Centos7 安装部署 Airflow

    本人在centos7 的环境下部署,怎么在centos7 下配置静态 IP 关闭防火墙 以及安装jdk在这里不多赘述, centos7 配置静态ip可以参考:https://www.cnblogs.c ...

  2. CentOS7.2安装Airflow

    1 安装pip yum -y install epel-release yum install python-pip 2 更新pip pip install --upgrade pip pip ins ...

  3. 在docker容器下安装airflow

    本人的环境是基于centos7下来安装的 一.安装docker  下载docker安装包,下载地址:https://download.docker.com/linux/static/stable/x8 ...

  4. HP服务器 hp 360g5 centos7安装问题

    HP服务器  hp 360g5 centos7安装问题 一 :启动盘无法识别硬盘 1.进入安装光盘,用上下键选择安装centos--Install Centos7(注意不可按Enter键),如图: 2 ...

  5. CentOS7 安装Mono及Jexus

    CentOS7安装Mono及Juxes 1 安装Mono 1.1 安装yum-utils 因为安装要用到yum-config-manager,默认是没有安装的,所以要先安装yum-utils包.命令如 ...

  6. CentOS7安装mysql提示“No package mysql-server available.”

    针对centos7安装mysql,提示"No package mysql-server available."错误,解决方法如下: Centos 7 comes with Mari ...

  7. CentOS7安装Oracle 11gR2 安装

    概述 Oracle 在Linux和window上的安装不太一样,公司又是Linux系统上的Oracle,实在没辙,研究下Linux下Oracle的使用,oracle默认不支持CentOS系统安装,所以 ...

  8. Centos7安装完毕后重启提示Initial setup of CentOS Linux 7 (core)的解决方法

    问题: CentOS7安装完毕,重新开机启动后显示: Initial setup of CentOS Linux 7 (core) 1) [x] Creat user 2) [!] License i ...

  9. centos7安装eclipse

    centos7安装eclipse Eclipse是一个集成开发环境(IDE),包含一个基工作区和定制环境的可扩展插件系统.大部分使用 Java 编写,Eclipse 可以用来开发应用程序.通过各种插件 ...

随机推荐

  1. Nokia5130不能上网

    说明 我是一个挺怀旧的人,一直想入手一个好几年前买的Nokia5130. 于是昨天在淘宝上买了一个,花了我一百多.不过早就停产了,买到的自然是翻新机. 收到货的时候,看似一切美好,但是下载了个uc的j ...

  2. 将图片画到canvas 上的几种方法(转)

    转自:https://blog.csdn.net/qq_15009739/article/details/82809525

  3. 怎样重启ssh服务

    尝试下面两个命令: service sshd restart systemctl restart sshd.service

  4. pat天梯赛练习集合 L3-007 天梯地图

    加了一些花的最短路,点的个数为500不需要堆优化,改一下dij的判断条件就可以了. 上代码: #include <iostream> #include <cstring> #i ...

  5. springcloud源码解析(目录)

    springcloud是一个基于springboot的一站式企业级分布式应用开发框架.springboot为其提供了创建单一项目的便利性,springcloud组合了现有的.常用的分布式项目的解决方案 ...

  6. 【转载】Sqlserver限制最大可使用内存

    在Sqlserver的使用过程中,我们会发现随着运行时间的增长,Sqlserver占用的系统也越来越大,查了网上的相关资料说,Sqlserver在查询完相应数据后,为了下一次查询的性能,并不会马上释放 ...

  7. 文件锁 flock/fcntl

    多个进程同时操作一个文件 1. flock int flock(int fd, int operation); LOCK_SH 建立共享锁定.多个进程可同时对同一个文件作共享锁定(读锁定) LOCK_ ...

  8. springboot学习入门简易版一---springboot2.0介绍

    1.1为什么用springboot(2) 传统项目,整合ssm或ssh,配置文件,jar冲突,整合麻烦.Tomcat容器加载web.xml配置内容 springboot完全采用注解化(使用注解方式启动 ...

  9. 在openwrt 17.01上编译最新nginx 1.14.2的笔记

    openwrt 17.01源码对应的nginx版本是1.10.2,有些新功能没有,所以需要升级到nginx 1.14.2最新的稳定版 https://github.com/macports/macpo ...

  10. Cknife流量分析

    本文首发:https://<img src=1 onerror=\u006coc\u0061tion='j\x61v\x61script:\x61lert\x281\x29'>testde ...