首先需要安装python,pip,建议安装python3。我这里因为之前使用datax,安装的时python2,图省事就没有升级到python3。下面介绍安装过程。

安装airflow

之后直接pip install apache-airflow进行安装,结果报一堆下面的错

Requirement already satisfied: scandir; python_version < "3.5" in /home/asn/.local/lib/python2.7/site-packages (from pathlib2; python_version < "3"->importlib-metadata<2,>=0.23; python_version == "2.7"->argcomplete~=1.10->apache-airflow) (1.10.0)
Building wheels for collected packages: psutil, setproctitleBuilding wheel for psutil (setup.py) ... errorERROR: Command errored out with exit status 1:command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hfjtmc/psutil/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hfjtmc/psutil/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-AbtHBdcwd: /tmp/pip-install-hfjtmc/psutil/Complete output (44 lines):running bdist_wheelrunning buildrunning build_pycreating buildcreating build/lib.linux-x86_64-2.7creating build/lib.linux-x86_64-2.7/psutilcopying psutil/_pswindows.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_psbsd.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_compat.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_common.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_psposix.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/__init__.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_psaix.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_pslinux.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_pssunos.py -> build/lib.linux-x86_64-2.7/psutilcopying psutil/_psosx.py -> build/lib.linux-x86_64-2.7/psutilcreating build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_aix.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_system.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_bsd.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_connections.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_unicode.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_posix.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_windows.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_misc.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_sunos.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/__init__.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_memory_leaks.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_osx.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_process.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_linux.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/__main__.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/test_contracts.py -> build/lib.linux-x86_64-2.7/psutil/testscopying psutil/tests/runner.py -> build/lib.linux-x86_64-2.7/psutil/testsrunning build_extbuilding 'psutil._psutil_linux' extensioncreating build/temp.linux-x86_64-2.7creating build/temp.linux-x86_64-2.7/psutilgcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_SIZEOF_PID_T=4 -DPSUTIL_VERSION=570 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.opsutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory#include <Python.h>^compilation terminated.error: command 'gcc' failed with exit status 1----------------------------------------ERROR: Failed building wheel for psutilRunning setup.py clean for psutilBuilding wheel for setproctitle (setup.py) ... error

解决方案也很简单,运行以下命令再重新安装即可:

sudo yum -y install python2-devel

python3类似

安装完成之后既可以查看airflow的版本号:

$ airflow version
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Airflow 1.10 will be the last release series to support Python 2
1.10.10

airflow默认是安装再~/airflow下的,可以通过设置export AIRFLOW_HOME=xxx修改安装目录。我这里没有改:

$ ll ~/airflow/
total 40
-rw-r--r-- 1 asn admin 36403 Jun  6 18:12 airflow.cfg
drwxr-xr-x 3 asn admin    23 Jun  6 18:12 logs
-rw-r--r-- 1 asn admin  2524 Jun  6 18:12 unittests.cfg

接下来进入初始化步骤。

初始化

$ airflow initdb
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Airflow 1.10 will be the last release series to support Python 2
DB: sqlite:home/asn/airflow/airflow.db
[2020-06-06 18:20:47,948] {db.py:378} INFO - Creating tables
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> e3a246e0dc1, current schema
INFO  [alembic.runtime.migration] Running upgrade e3a246e0dc1 -> 1507a7289a2f, create is_encrypted
/home/asn/.local/lib/python2.7/site-packages/alembic/ddl/sqlite.py:41: UserWarning: Skipping unsupported ALTER for creation of implicit constraintPlease refer to the batch mode feature which allows for SQLite migrations using a copy-and-move strategy."Skipping unsupported ALTER for "
INFO  [alembic.runtime.migration] Running upgrade 1507a7289a2f -> 13eb55f81627, maintain history for compatibility with earlier migrations
INFO  [alembic.runtime.migration] Running upgrade 13eb55f81627 -> 338e90f54d61, More logging into task_instance
INFO  [alembic.runtime.migration] Running upgrade 338e90f54d61 -> 52d714495f0, job_id indices
INFO  [alembic.runtime.migration] Running upgrade 52d714495f0 -> 502898887f84, Adding extra to Log
INFO  [alembic.runtime.migration] Running upgrade 502898887f84 -> 1b38cef5b76e, add dagrun
INFO  [alembic.runtime.migration] Running upgrade 1b38cef5b76e -> 2e541a1dcfed, task_duration
INFO  [alembic.runtime.migration] Running upgrade 2e541a1dcfed -> 40e67319e3a9, dagrun_config
INFO  [alembic.runtime.migration] Running upgrade 40e67319e3a9 -> 561833c1c74b, add password column to user
INFO  [alembic.runtime.migration] Running upgrade 561833c1c74b -> 4446e08588, dagrun start end
INFO  [alembic.runtime.migration] Running upgrade 4446e08588 -> bbc73705a13e, Add notification_sent column to sla_miss
INFO  [alembic.runtime.migration] Running upgrade bbc73705a13e -> bba5a7cfc896, Add a column to track the encryption state of the 'Extra' field in connection
INFO  [alembic.runtime.migration] Running upgrade bba5a7cfc896 -> 1968acfc09e3, add is_encrypted column to variable table
INFO  [alembic.runtime.migration] Running upgrade 1968acfc09e3 -> 2e82aab8ef20, rename user table
INFO  [alembic.runtime.migration] Running upgrade 2e82aab8ef20 -> 211e584da130, add TI state index
INFO  [alembic.runtime.migration] Running upgrade 211e584da130 -> 64de9cddf6c9, add task fails journal table
INFO  [alembic.runtime.migration] Running upgrade 64de9cddf6c9 -> f2ca10b85618, add dag_stats table
INFO  [alembic.runtime.migration] Running upgrade f2ca10b85618 -> 4addfa1236f1, Add fractional seconds to mysql tables
INFO  [alembic.runtime.migration] Running upgrade 4addfa1236f1 -> 8504051e801b, xcom dag task indices
INFO  [alembic.runtime.migration] Running upgrade 8504051e801b -> 5e7d17757c7a, add pid field to TaskInstance
INFO  [alembic.runtime.migration] Running upgrade 5e7d17757c7a -> 127d2bf2dfa7, Add dag_id/state index on dag_run table
INFO  [alembic.runtime.migration] Running upgrade 127d2bf2dfa7 -> cc1e65623dc7, add max tries column to task instance
INFO  [alembic.runtime.migration] Running upgrade cc1e65623dc7 -> bdaa763e6c56, Make xcom value column a large binary
INFO  [alembic.runtime.migration] Running upgrade bdaa763e6c56 -> 947454bf1dff, add ti job_id index
INFO  [alembic.runtime.migration] Running upgrade 947454bf1dff -> d2ae31099d61, Increase text size for MySQL (not relevant for other DBs' text types)
INFO  [alembic.runtime.migration] Running upgrade d2ae31099d61 -> 0e2a74e0fc9f, Add time zone awareness
INFO  [alembic.runtime.migration] Running upgrade d2ae31099d61 -> 33ae817a1ff4, kubernetes_resource_checkpointing
INFO  [alembic.runtime.migration] Running upgrade 33ae817a1ff4 -> 27c6a30d7c24, kubernetes_resource_checkpointing
INFO  [alembic.runtime.migration] Running upgrade 27c6a30d7c24 -> 86770d1215c0, add kubernetes scheduler uniqueness
INFO  [alembic.runtime.migration] Running upgrade 86770d1215c0, 0e2a74e0fc9f -> 05f30312d566, merge heads
INFO  [alembic.runtime.migration] Running upgrade 05f30312d566 -> f23433877c24, fix mysql not null constraint
INFO  [alembic.runtime.migration] Running upgrade f23433877c24 -> 856955da8476, fix sqlite foreign key
INFO  [alembic.runtime.migration] Running upgrade 856955da8476 -> 9635ae0956e7, index-faskfail
INFO  [alembic.runtime.migration] Running upgrade 9635ae0956e7 -> dd25f486b8ea, add idx_log_dag
INFO  [alembic.runtime.migration] Running upgrade dd25f486b8ea -> bf00311e1990, add index to taskinstance
INFO  [alembic.runtime.migration] Running upgrade 9635ae0956e7 -> 0a2a5b66e19d, add task_reschedule table
INFO  [alembic.runtime.migration] Running upgrade 0a2a5b66e19d, bf00311e1990 -> 03bc53e68815, merge_heads_2
INFO  [alembic.runtime.migration] Running upgrade 03bc53e68815 -> 41f5f12752f8, add superuser field
INFO  [alembic.runtime.migration] Running upgrade 41f5f12752f8 -> c8ffec048a3b, add fields to dag
INFO  [alembic.runtime.migration] Running upgrade c8ffec048a3b -> dd4ecb8fbee3, Add schedule interval to dag
INFO  [alembic.runtime.migration] Running upgrade dd4ecb8fbee3 -> 939bb1e647c8, task reschedule fk on cascade delete
INFO  [alembic.runtime.migration] Running upgrade 939bb1e647c8 -> 6e96a59344a4, Make TaskInstance.pool not nullable
INFO  [alembic.runtime.migration] Running upgrade 6e96a59344a4 -> d38e04c12aa2, add serialized_dag table
Revision ID: d38e04c12aa2
Revises: 6e96a59344a4
Create Date: 2019-08-01 14:39:35.616417
INFO  [alembic.runtime.migration] Running upgrade d38e04c12aa2 -> b3b105409875, add root_dag_id to DAG
Revision ID: b3b105409875
Revises: d38e04c12aa2
Create Date: 2019-09-28 23:20:01.744775
INFO  [alembic.runtime.migration] Running upgrade 6e96a59344a4 -> 74effc47d867, change datetime to datetime2(6) on MSSQL tables
INFO  [alembic.runtime.migration] Running upgrade 939bb1e647c8 -> 004c1210f153, increase queue name size limit
INFO  [alembic.runtime.migration] Running upgrade c8ffec048a3b -> a56c9515abdc, Remove dag_stat table
INFO  [alembic.runtime.migration] Running upgrade a56c9515abdc, 004c1210f153, 74effc47d867, b3b105409875 -> 08364691d074, Merge the four heads back together
INFO  [alembic.runtime.migration] Running upgrade 08364691d074 -> fe461863935f, increase_length_for_connection_password
INFO  [alembic.runtime.migration] Running upgrade fe461863935f -> 7939bcff74ba, Add DagTags table
INFO  [alembic.runtime.migration] Running upgrade 7939bcff74ba -> a4c2fd67d16b, add pool_slots field to task_instance
INFO  [alembic.runtime.migration] Running upgrade a4c2fd67d16b -> 852ae6c715af, Add RenderedTaskInstanceFields table
INFO  [alembic.runtime.migration] Running upgrade 852ae6c715af -> 952da73b5eff, add dag_code table
WARNI [airflow.utils.log.logging_mixin.LoggingMixin] cryptography not found - values will not be stored encrypted.
Done.

默认使用的数据库是sqlite,与airflow.executors.sequential_executor.SequentialExecutor绑定在一起,只支持任务实例的顺序执行,不支持并行化,因此后续可以通过配置修改改mysql数据库。

启动web服务

$ airflow webserver -p 8080
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Airflow 1.10 will be the last release series to support Python 2____________       _________________    |__( )_________  __/__  /________      __
____  /| |_  /__  ___/_  /_ __  /_  __ \_ | /| / /
___  ___ |  / _  /   _  __/ _  / / /_/ /_ |/ |/ /_/_/  |_/_/  /_/    /_/    /_/  \____/____/|__/
[2020-06-06 18:26:19,484] {__init__.py:51} INFO - Using executor SequentialExecutor
[2020-06-06 18:26:19,485] {dagbag.py:396} INFO - Filling up the DagBag from /home/asn/airflow/dags
Running the Gunicorn Server with:
Workers: 4 sync
Host: 0.0.0.0:8080
Timeout: 120
Logfiles: - -
=================================================================
[2020-06-06 18:26:20 +0000] [32513] [INFO] Starting gunicorn 19.10.0
[2020-06-06 18:26:20 +0000] [32513] [INFO] Listening at: http://0.0.0.0:8080 (32513)
[2020-06-06 18:26:20 +0000] [32513] [INFO] Using worker: sync
[2020-06-06 18:26:20 +0000] [32534] [INFO] Booting worker with pid: 32534
[2020-06-06 18:26:20 +0000] [32535] [INFO] Booting worker with pid: 32535
[2020-06-06 18:26:20 +0000] [32536] [INFO] Booting worker with pid: 32536
[2020-06-06 18:26:20 +0000] [32551] [INFO] Booting worker with pid: 32551
[2020-06-06 18:26:21,169] {__init__.py:51} INFO - Using executor SequentialExecutor
[2020-06-06 18:26:21,169] {dagbag.py:396} INFO - Filling up the DagBag from /home/asn/airflow/dags
[2020-06-06 18:26:21,185] {__init__.py:51} INFO - Using executor SequentialExecutor
[2020-06-06 18:26:21,185] {dagbag.py:396} INFO - Filling up the DagBag from /home/asn/airflow/dags
[2020-06-06 18:26:21,260] {__init__.py:51} INFO - Using executor SequentialExecutor
[2020-06-06 18:26:21,260] {dagbag.py:396} INFO - Filling up the DagBag from /home/asn/airflow/dags
[2020-06-06 18:26:21,335] {__init__.py:51} INFO - Using executor SequentialExecutor
[2020-06-06 18:26:21,336] {dagbag.py:396} INFO - Filling up the DagBag from /home/asn/airflow/dags

查看页面xxxx:8080

启动schedule

$ airflow scheduler
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Airflow 1.10 will be the last release series to support Python 2____________       _________________    |__( )_________  __/__  /________      __
____  /| |_  /__  ___/_  /_ __  /_  __ \_ | /| / /
___  ___ |  / _  /   _  __/ _  / / /_/ /_ |/ |/ /_/_/  |_/_/  /_/    /_/    /_/  \____/____/|__/
[2020-06-06 18:30:37,652] {__init__.py:51} INFO - Using executor SequentialExecutor
[2020-06-06 18:30:37,661] {scheduler_job.py:1346} INFO - Starting the scheduler
[2020-06-06 18:30:37,661] {scheduler_job.py:1354} INFO - Running execute loop for -1 seconds
[2020-06-06 18:30:37,662] {scheduler_job.py:1355} INFO - Processing each file at most -1 times
[2020-06-06 18:30:37,662] {scheduler_job.py:1358} INFO - Searching for files in /home/asn/airflow/dags
[2020-06-06 18:30:37,674] {scheduler_job.py:1360} INFO - There are 24 files in /home/asn/airflow/dags
[2020-06-06 18:30:37,674] {scheduler_job.py:1411} INFO - Resetting orphaned tasks for active dag runs
[2020-06-06 18:30:37,688] {dag_processing.py:556} INFO - Launched DagFileProcessorManager with pid: 3851
[2020-06-06 18:30:37,704] {settings.py:54} INFO - Configured default timezone <Timezone [UTC]>
[2020-06-06 18:30:37,720] {dag_processing.py:758} WARNING - Because we cannot use more than 1 thread (max_threads = 2) when using sqlite. So we set parallelism to 1.

安装结束!

参考:https://blog.csdn.net/liyuxing6639801/article/details/82153967

官网:http://airflow.apache.org/docs/stable/start.html

centos安装airflow相关推荐

  1. centos 7 ssh 安装mysql,Centos 7 安装Airflow

    Airflow 安装环境 : centos7   python3.7.0  mysql-8.0.22 一.安装mysql-8.0.22 二.安装python3.7.0 三.安装配置 [root@had ...

  2. CentOS 安装docker.ce报错提示containerd.io >= 1.2.2-3问题

    centos安装docker.ce遇到报错,提示如下 # yum install -y docker-ce Last metadata expiration check: 0:01:49 ago on ...

  3. CentOS安装crontab

    CentOS安装crontab: yum install crontabs 说明: service crond start //启动服务 service crond stop //关闭服务 servi ...

  4. CentOS 安装Apache

    # centOS 安装A M P 环境 [参考简书作者,非常感谢!!!](https://www.jianshu.com/p/bc14ff0ab1c7) ## 一 Apache 环境安装 1 安装Ap ...

  5. centos 安装 NTFS支持

    2019独角兽企业重金招聘Python工程师标准>>> 参考的原文网址: centos安装完之后,默认是不支持NTFS磁盘格式的,解决的方法之一就是安装NTFS-3G模块,但是默认的 ...

  6. centos安装及网络配置

    感谢老师传授,共同学习!谢谢!仅供自己日后复习之用! centos安装关键点: 创建分区: / 系统分区 /boot 启动分区 SWAP 交换分区,虚拟内存.主要是缓解物理内存不足. 虚拟化软件: V ...

  7. centos安装tensorFlow的java环境

    参考问题汇总 centos安装tensorFlow版本的时候会遇到的一些问题,参考这个链接:https://blog.csdn.net/luoyexuge/article/details/783212 ...

  8. centos 安装 svn

    centos 安装svn服务 1. # yum install subversion 2.然后检查下安装的版本号 因为版本号不同可能会出现不同的情况 版本 信息 [root@VM_137_37_cen ...

  9. Linux(CentOS)安装分区方案

    为什么80%的码农都做不了架构师?>>>    Linux(CentOS)安装分区方案 /boot(不是必须的):/boot分区用于引导系统,它包含了操作系统的内核和在启动系统过程中 ...

最新文章

  1. redis 缓存过期默认时间_缓存的必知必会:一文搞懂Redis持久化和过期机制
  2. redis-3.0.2集群部署
  3. 艾伟_转载:把事件当作对象进行传递
  4. 微软Office Online服务安装部署及wopi代码实现--------Office Online服务器的安装
  5. Oracle RAC -常见CRS命令
  6. Linq to Oracle 使用教程(十)绑定数据到 GridView
  7. atom对比 vscode_Atom、Sublime Text、VSCode 三者比较
  8. 阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
  9. xcode 自定义Eclipse里边常用的快捷键
  10. 趋势(被亚信并购)杀毒软件强制卸载
  11. React-Pdf使用过程心得
  12. 使用清华镜像快速下载TensorFlow各版本及已安装版本查看
  13. maven读取不到包,项目名爆红
  14. 标准Lipschitz连续函数与伪Lipschitz连续函数
  15. 企业微信登录二维码样式修改
  16. 根据SNP的位置从基因组提取上下游序列
  17. 上计算机课怎么备课,如何备课写教案
  18. 大白话5分钟带你走进人工智能-第七节梯度下降之梯度概念和梯度迭代过程(2)
  19. react使用mock
  20. 泽塔云发布全新AI产品 持续引领超融合云计算创新

热门文章

  1. HI3536C 多通道网络解码器
  2. jQuery条形图插件
  3. 凡是过往,皆为序章;当下不负,未来展望【2021年终总结】
  4. 为什么曾经看好的车联网如今却成了鸡肋?
  5. 如何强制谷歌浏览器 使用 美国域名搜索
  6. 【北航操作系统】2020春课堂测试及答案
  7. 还在纠结报表工具选型吗?
  8. mysql 组合索引 in_mysql组合索引与字段顺序
  9. mvn打包中使用-D替换pom中的值
  10. 白夜行,在白日黑暗中行走的男女