airflow安裝實操記錄

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 {}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章