Airflow的安装与配置

1. 安装环境
Virtualbox虚拟机,CentOS6.5系统

2. 安装过程
1) 安装Anaconda
使用Anaconda环境,可以自动安装Python以及相关的包。
在Linux中下载Anaconda的脚本,执行脚本。安装好Anaconda后,安装包会自动选择不将Anaconda添加至环境变量,在安装的最后会出现添加环境变量的提示,复制后在bash中运行即可。
2) 安装Airflow
执行命令
pip install apache-airflow
报错,环境中缺失setproctitle的包。执行pip install setproctitle反复报错。
Solution: 执行命令
conda install -c conda-forge setproctitle
重新执行安装命令,至此airflow安装成功。
3) 配置Airflow
向环境中添加变量airflow。
export AIRFLOW_HOME=~/airflow
首次执行airflow命令时,会在AIRFLOW_HOME目录下创建Airflow的配置文件airflow.cfg。
Airflow默认使用的数据库为sqlite,同时它也支持mysql等数据库,这里以连接mysql数据库为例。
如果还没有安装mysql数据库,需要先使用yum安装。此处需要注意,CentOS6.5的yum安装的mysql版本号为5.1,如果想要使用Airflow,mysql的版本号至少要是5.6。可以使用yum安装好mysql后再进行升级。
还需要安装mysql的支持包:
yum install mysql mysql-server
pip install airflow[mysql]
先以root身份登录mysql,创建名字为airflow的数据库。并且新建一个用户使其对数据库airflow有完全操作权限。
mysql -u root
SET PASSWORD=PASSWORD("passwd");
FLUSH PRIVILEGES;
CREATE DATABASE airflow;
GRANT all privileges on airflow.* TO 'ct'@'localhost'  IDENTIFIED BY '152108'; 
FLUSH PRIVILEGES;
如果想要连接到mysql数据库,需要找到airflow目录下的airflow.cfg,找到sql_alchemy_conn参数进行修改。
E.g. sql_alchemy_conn = mysql://ct:152108@localhost/airflow
意思为,连接到mysql数据库,使用用户名为ct帐号,使用密码152108来登录数据库airflow。
现在初始化airflow数据库。
airflow initdb
报错,发现错误原因为没有mysqldb这个包。于是执行命令:
apt-get install python-mysqldb
还是报错,发现没有mysql-config;由于没有gcc,还需要安装gcc。于是执行命令:
apt-get install libmysqlclient-dev
yum install gcc
如果还是报错,可能需要更多的安装包,具体可以查看 https://stackoverflow.com/questions/5178292/pip-install-mysql-python-fails-with-environmenterror-mysql-config-not-found
执行airflow initdb后成功后,就可以用登录mysql查看新生成的airflow数据库。
接下来启动Airflow webserver,执行命令airflow webserver:
airflow webserver
报错,使用debug模式得到:airflow webserver address already in use。
清空airflow文件夹下的airflow-webserver.pid后继续报错:airflow can not connect to 0.0.0.0:8080
于是修改airflow.cfg中webserver附近的内容,将其修改为另一个port(比如127.0.0.1:8081)。
再执行airflow webserver,打开Airflow webserver成功。如果还是失败可以重启mysql进行尝试。
如果成功打开webserver,可以在浏览器中输入127.0.0.1:8081/admin/
此时就可以登录airflow webserver查看UI界面。
打开另一个terminal,执行命令:
airflow scheduler
Airflow配置完成。
4) Appendix:MySQL启动报错
在mysql升级到5.6后执行命令service mysqld start失败。
执行命令:
vim /var/log/mysqld.log
查看日志发现innodb引擎没有打开,于是在/etc/my.cnf文件中的[mysqld]的block下写入:
innodb_data_file_path = ibdata1:10M:autoextend
再执行命令:service mysqld restart
此时mysql可以成功启动。










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值