安裝Mysql (否則后面 pip install mysql) 無法安裝
#ubuntu sudo apt-get install libmysqlclient-dev
pip 依賴:
pip install apache-airflow[celery,crypto,mysql,password,redis]
airflow-LocalExecutor
mysql-airflow
pip install mysqlclient
在mysql上執行
create database airflow; —— 創建數據庫
GRANT all privileges on airflow.* TO 'airflow'@'%' IDENTIFIED BY '123456'; —— 將數據庫airflow的所有權限授權airflow用戶,密碼123456且該用戶可在任何IP段登錄操作
FLUSH PRIVILEGES; —— 刷新權限
set explicit_defaults_for_timestamp = 1;
修改airflow配置文件airflow.cfg
sql_alchemy_conn = mysql://airflow:123456@mysqlIP/airflow
修改執行器,使airflow並發調度任務
修改配置文件airflow.cfg
executor = LocalExecutor
重啟scheduler即可(默認並發調度16)
初始化數據庫
airflow initdb
若之前使用sqllite初始化過可使用airflow resetdb
irflow initdb :
出現異常:Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
解決方式:
https://airflow.readthedocs.io/en/stable/faq.html#how-to-fix-exception-global-variable-explicit-defaults-for-timestamp-needs-to-be-on-1
出現異常:Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
解決方式:
https://airflow.readthedocs.io/en/stable/faq.html#how-to-fix-exception-global-variable-explicit-defaults-for-timestamp-needs-to-be-on-1
docker exec -it meu_mysql /bin/bash cd /etc/mysql/ root@8ab0b9bd6a08:/etc/mysql/conf.d# cat mysql.cnf [mysql] root@8ab0b9bd6a08:/etc/mysql/conf.d# echo '[mysqld]' >> mysql.cnf root@8ab0b9bd6a08:/etc/mysql/conf.d# echo 'explicit_defaults_for_timestamp = 1' >> mysql.cnf root@8ab0b9bd6a08:/etc/mysql/conf.d# cat mysql.cnf [mysql] [mysqld] explicit_defaults_for_timestamp = 1max_allowed_packet= 500M
分布式問題
1.需要使用同步方式解決dags目錄與worker的同步問題——待解決
2.需要解決scheduler的單點問題,可參考 apache-airflow 調度系統 https://blog.csdn.net/somezz/article/details/82749495
cankao :https://my.oschina.net/u/3770892/blog/3069220
