airflow安装实操记录

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

1.1 基础安装

1.1.1 默认自带python2环境,自行安装pip

sudo yum -y install python-pip

使用bigdata用户安装,需要加sudo,否则会出现Permission denied

1.1.2 进行pip的更新,否则后续很多安装会报错

 sudo pip install --upgrade pip
 sudo pip install --upgrade setuptools

1.1.3 安装开发库

sudo yum install python-devel
sudo yum install libevent-devel
sudo yum install mysql-devel

1.1.4 安装mysql,作为airflow的元数据库(已安装,跳过)

yum -y install mariadb mariadb-server

启动并设置开机启动

systemctl start mariadb
systemctl enable mariadb

1.1.5 初始化配置mysql(已安装,跳过)

注:可以设定允许root远程登录,并且删除test和None用户,这样才能使得mysql允许远程登录

mysql_secure_installation

1.1.6 安装airflow

export SLUGIFY_USES_TEXT_UNIDECODE=yes
sudo pip install apache-airflow 

(对方服务器不稳定,需要不断尝试)
默认安装到了~/airflow目录

1.1.7 初始化airflow并启动

airflow initdb
airflow web server -p 8080

1.1.8 防止密码明文存储

sudo pip install cryptography

参考:http://airflow.apache.org/howto/secure-connections.html

1.1.9 在本地写日志

vi airflow.cfg 
base_log_folder

http://airflow.apache.org/howto/write-logs.html

远程日志记录

1.2 airflow mysql 安装

airflow数据库后端存储元数据,建议使用MySQL或Postgres(这里选择mysql)

1.2.1 安装airflow-mysql

pip install apache-airflow[mysql] —user

1.2.2 创建airflow用户,创建airflow数据库并给出所有权限给次用户

#创建库表和用户
create database airflow default charset utf8mb4 collate utf8mb4_general_ci;
create user airflow@'%' identified by 'airflow';
grant all on airflow.* to airflow@'%'; 
flush privileges;

1.2.3 修改airflow配置文件,指向数据库mysql

首次执行airflow命令时,会在$AIRFLOW_HOME下面创建airflow的配置文件airflow.cfg。

配置元数据库

vi /home/bigdata/airflow/airflow.cfg

快速查找 /

sql_alchemy_conn = mysql://airflow:[email protected]:3306/airflow

注:这里mysql在01节点,airflow装在02节点

1.2.4 修改配置文件添加参数,之后初始化数据库

vim /etc/my.cnf
[mysqld]
explicit_defaults_for_timestamp=1   // 添加此行 =1和=true是一样的

初始化数据库后端参考:http://airflow.apache.org/howto/initialize-database.html
修改后,重启mysql服务器

service mysqld restart

参考:http://airflow.apache.org/faq.html
初始化元数据库连接(默认sqlite)

airflow initdb

启动web服务(不指定端口时默认端口:8080)

airflow webserver -p 8080 
airfow webserver -D

如果你想把 airflow 作为一个守护进程在后台运行,那么可以在后面添加参数 -d 。

airflow webserver --debug &

启动scheduler

airflow scheduler

访问验证&多用户登录

airflow.cfg

authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth
filter_by_owner = True

增加一个用户(在airflow所在服务器的python下运行)

import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'airflow'
user.email = '[email protected]'
user.password = 'airflow'
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()

更多

清空元数据库

airflow resetdb

关闭webserver

每次修改完airflow.cfg都要重启airflow
每次新增DAG也需要重启airflow,不然找不到新的DAG
关闭webserver:

ps -ef|grep -Ei '(airflow-webserver)'| grep master | awk '{print $2}'|xargs -i kill {}

猜你喜欢

转载自blog.csdn.net/qq_30552441/article/details/94136240