airflow分布式部署踩坑记录之安装篇<1>

前言

airflow是一款基于python的开源任务流调度系统,但是关于airflow的安装教程比较匮乏。本人在亲自安装的过程中遇到了很多奇葩的问题,期间也参考了网上的各种资料,在此做下记录,以备不时之需。


系统环境
  • 操作系统 Centos6.5
  • python 2.7.12

如果你拿到的是一台新安装了Centos6.5系统的机器,那么你可能要多做一些准备工作:

1.检查你的机器是否可以访问外网
  执行ifconfig查看是否有外网IP,如果没有再编辑/etc/sysconfig/network-scripts/ifcfg-ens**(注:**表示机器网卡的编号),将其中的onboot修改成yes,然后reboot重启系统即可。
2.检查系统中默认python版本
  执行 python --version,查看当前系统python版本,一般情况下python版本为2.6.6。
  然后升级python2.6.6至python2.7:
      >:下载Python-2.7.12
         wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
         (注:如果提示没有wget,则执行yum install wget进行安装)
      >:解压文件
        tar -zxvf Python-2.7.12
      >:编译安装
        cd Python-2.7.12
        ./config
        make all
        make install
      >:查看版本信息 并且 修改系统默认Python版本
        /usr/local/bin/python2.7 --version
        mv /usr/bin/python /usr/bin/python2.6.6
        ln -s /usr/local/bin/python2.7 /usr/bin/python
      >:解决yum不兼容Python2.7的问题
        vim /usr/bin/yum
        (注:如果没有vim,则执行yum install vim进行安装即可)
        修改文件头部为 #!/usr/bin/python2.6.6      
3.安装开发工具包及其他依赖包
      >:yum groupinstall -y "Development tools"
      >:yum install -y zlib-devel bzip-devel openssl-devel ncurses-devel sqllite-devel
4.安装pip
      >:wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
      >:python get-pip.py
      (注:如果报错:Could not find an activated virtualenv(required))
      >:vim ~/.bashrc
      >:添加 export PIP_REQUIRE_VIRTUALENV=false
      >:source ~/.bashrc
      >:重新执行 python get-pip.py即可
5.安装python模块pandas numpy
      >:pip install pandas
      >:pip install numpy

开始安装

如果你的基础环境都准备无误,那么安装airflow就是一件非常简单的事情,但是在使用pip直接安装的时候还是需要留意:

  • 你需要在~/.bashrc文件中定义airflow的目录,如果不先设置,在初始化airflow的时候,会将配置文件等信息安放在~/airflow中。在~/.bashrc中添加配置信息export AIRFLOW_HOME=your dir并且source ~/.bashrc
  • 如果使用pip install airflow,你会发现安装的是airflow 1.8.0版本,并且最新版本也是1.8.0。因为airflow原是airBnb内部使用的系统,随着airflow系统的使用者逐渐增多,其在2016年加入Apache孵化器工程,成为Apache下的开源项目。
  • 在安装的时候应该使用pip install apache-airflow进行安装,并且可以使用pip install apache-airflow==版本号指定需要版本的airflow
  • 同时airflow项目中也有很多的扩展模块,为了方便,本人在安装的时候直接使用pip install apache-airflow[all]==1.9.0进行安装

本人在安装的时候使用的是1.9.0的版本,不幸的是该版本中存在一些缺陷,会在下一篇中进行解释,建议安装1.8.2版本,听同行介绍1.8.2版本是比较稳定的,但是具体情况不详在次不便多说。

  • 安装完之后,airflow源码目录为/usr/local/lib/python2.7/site-packages/,配置文件以及其他信息在AIRFLOW_HOME目录处
  • 接下来执行airflow initdb对airflow进行初始化
  • 然后执行airflow webserver -p8080启动airflow的web UI

    在此之前你还需要检查系统的防火墙,以及8080端口是否有其他进程占用  
      >:service iptables status (注:查看防火墙状态)
    

    这里写图片描述

    如果8080端口被墙
     >:vim /tec/sysconfig/iptables (如下图红框中的格式添加需要开放的端口)
    

    这里写图片描述

    然后重启防火墙
     >:service iptables restart
    在浏览器中输入 127.0.0.1:8080 或者 localhost:8080 就可以看到airflow的web界面了
    

    这里写图片描述

至此完成基础安装,其他内容详见下篇。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是Airflow分布式安装教程: 1. 安装Python和pip Airflow是一个Python项目,因此需要先安装Python和pip。建议使用Python 3.6或更高版本。 2. 安装PostgreSQL和Redis Airflow需要使用PostgreSQL作为元数据库,Redis作为消息代理。可以在官网上下载和安装。 3. 安装Airflow 可以使用pip来安装Airflow: ``` pip install apache-airflow ``` 4. 配置Airflow 创建Airflow配置文件: ``` export AIRFLOW_HOME=/path/to/airflow airflow initdb ``` 这将创建一个名为`airflow.cfg`的配置文件,可以通过编辑此文件来配置Airflow。 5. 启动Airflow web服务器和调度程序 可以使用以下命令来启动Airflow web服务器和调度程序: ``` airflow webserver -p 8080 airflow scheduler ``` 6. 添加工作节点 可以在多个工作节点上安装Airflow,并将其配置为使用相同的元数据库和消息代理。在每个工作节点上运行以下命令: ``` airflow worker ``` 7. 配置CeleryExecutor 默认情况下,Airflow使用SequentialExecutor来执行任务。如果要使用分布式任务调度器CeleryExecutor,需要在`airflow.cfg`中进行配置。 ``` executor = CeleryExecutor celery_result_backend = db+postgresql://user:password@host:port/airflow celery_broker_url = redis://:password@host:port/0 ``` 8. 启动Celery worker 要在工作节点上启动Celery worker,请运行以下命令: ``` airflow celery worker ``` 9. 启动Celery beat 要在管理节点上启动Celery beat,请运行以下命令: ``` airflow celery beat ``` 10. 使用Airflow 现在可以使用Airflow来编写和运行任务了。在管理节点上,可以通过浏览器访问`http://localhost:8080`来访问Airflow web界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农李某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值