airflow —安装详解 (2)

安装python>=2.7

安装airflow

安装airflow :https://pythonhosted.org/airflow/installation.html

yum install libxml2-devel
yum install libxslt-devel
yum install libffi-devel

# airflow needs a home, ~/airflow is the default,
# but you can lay foundation somewhere else if you prefer
# (optional)
export AIRFLOW_HOME=~/airflow

# install from pypi using pip
pip2 install numpy
pip2 install cython
pip2 install pandas
pip2 install airflow
pip2 install airflow[hive]
pip2 install airflow[mysql]
pip2 install airflow[celery]
pip2 install airflow[rabbitmq]
pip2 install airflow[crypto]
pip2 install airflow[password]
pip2 install celery
pip2 install flower

安装DB

# initialize the database
airflow initdb

如果需要mysql,请修改全局配置文件airflow.cfg,并创建airflow库:

create database airflow default charset utf8;

在使用airflow-1.8.0版本时,如果有如下报错:

>>>> sqlalchemy.exc.ProgrammingError: (_mysql_exceptions.ProgrammingError)

>>>> (1064, "You have an error in your SQL syntax; check the manual that

>>>> corresponds to your MySQL server version for the right syntax to use

>> near

>>>> '(6) NULL' at line 1") [SQL: u'ALTER TABLE dag MODIFY last_scheduler_run

>>>> DATETIME(6) NULL']

需要变更

airflow/migrations/versions/4addfa1236f1_add_fractional_seconds_to_mysql_tables.py

mysql.DATETIME(fsp=6) 全部改为 mysql.DATETIME()或将mysql升级到5.7或以上的版本。

启动后台celery worker

如果使用了CeleryExecutor,需要启动

airflow worker -D

启动后台scheduler

airflow scheduler -D

启动webserver

# start the web server, default port is 8080
airflow webserver -p 8080 -D

启动flower

如果使用了celery

airflow flower

查看配置文件

$ cd ~/airflow
$ ls airflow.cfg  airflow.db  airflow-webserver.pid  unittests.cfg

开启用户认证

启动认证

$vim airflow.cfg

# Set to true to turn on authentication:
# http://pythonhosted.org/airflow/installation.html#web-authentication
#authenticate = False
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth

创建用户

import airflow

from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'your  usrename'
user.email = 'username@email.com'
user.password = 'your password'
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码农二狗

慎用replace into

1883
来自专栏CodingToDie

MySQL MVCC(多版本控制)

MySQL 提供了两种事务型的存储引擎:InnoDB 和 NDB Cluster 。另外还有一些第三方存储引擎也支持事务

1175
来自专栏pangguoming

MyBatis两张表字段名相同产生的问题

MyBatis两张表字段名相同, 会导致bean属性都映射为第一个表的列, 解决方法: 通过设置别名的方式让其产生区别,如 <select id="queryB...

3967
来自专栏杨建荣的学习笔记

关于move tablespace的问题总结(r2笔记50天)

现在得到一个需求,需要把生产环境的多个schema下的表结构复制到测试环境中的一个schema下。 生产环境和测试i环境的表空间配置都不一样。 目前可以考虑用如...

2735
来自专栏技术博文

mysql导出select结果到文件

mysql -hxx -uxx -pxx -e "query statement" db > file  例如:  mysql -h127.0.0.1 -uro...

3564
来自专栏数据和云

深入原理:Consistent Reads 与 buffer cache

黄玮(Fuyuncat) 资深Oracle DBA,个人网www.HelloDBA.com,致力于数据库底层技术的研究,其作品获得广大同行的高度评价. 编辑手记...

3597
来自专栏散尽浮华

mysql操作命令梳理(4)-grant授权和revoke回收权限

在mysql维护工作中,做好权限管理是一个很重要的环节。下面对mysql权限操作进行梳理: mysql的权限命令是grant,权限撤销的命令时revoke; g...

2545
来自专栏康怀帅的专栏

LAMP CentOS7 开发环境配置

本文简要介绍了手动搭建 LNMP 开发环境的步骤。 MySQL mysql-community-client-5.7.13-1.el7.x86_64.rpm m...

3664
来自专栏大白虾谈架构

mysql 远程连接数据库的二种方法

1.1K3
来自专栏zcqshine's blog

PHP mysqli_multi_query 连续执行的坑

3626

扫码关注云+社区