天天看點

作業排程中心Apache Airflow部署初體驗1.   安裝必要的元件2.   安裝python3.6.53.   安裝airflow

本文介紹通過離線的方式安裝airflow 1.10.9,将安裝包上傳至伺服器。

1.   安裝必要的元件

1.1安裝gcc

進入dependencies目錄,依次執行安裝(注意順序)

1.  rpm -ivh kernel-headers-3.10.0-1062.12.1.el7.x86_64.rpm 

2.  rpm -ivh glibc-headers-2.17-292.el7.x86_64.rpm

3.  rpm -ivh glibc-devel-2.17-292.el7.x86_64.rpm  

4.  rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm 

5.  rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm  

6.  rpm -ivh cpp-4.8.5-39.el7.x86_64.rpm  

7.  rpm -ivh gcc-4.8.5-39.el7.x86_64.rpm  

1.2安裝openssl-devel, 依次執行安裝(注意順序)

1.  rpm -ivh libverto-devel-0.2.5-4.el7.x86_64.rpm 

2.  rpm -ivh keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm 

3.  rpm -ivh libcom_err-devel-1.42.9-16.el7.x86_64.rpm 

4.  rpm -ivh libsepol-devel-2.5-10.el7.x86_64.rpm 

5.  rpm -ivh krb5-libs-1.15.1-37.el7_7.2.x86_64.rpm  --force

6.  rpm -ivh libkadm5-1.15.1-37.el7_7.2.x86_64.rpm 

7.  rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm 

8.  rpm -ivh libselinux-devel-2.5-14.1.el7.x86_64.rpm  

9.  rpm -ivh krb5-devel-1.15.1-37.el7_7.2.x86_64.rpm 

10. rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

11. rpm -ivh openssl-devel-1.0.2k-19.el7.x86_64.rpm   

1.3安裝sqlite-devel, 依次執行安裝(注意順序)

1.   rpm -ivh sqlite-3.7.17-8.el7_7.1.x86_64.rpm --force   

2.   rpm -ivh sqlite-devel-3.7.17-8.el7_7.1.x86_64.rpm  

1.4安裝gcc-c++, 依次執行安裝(注意順序)

1.   rpm -ivh libstdc++-devel-4.8.5-39.el7.x86_64.rpm  

2.   rpm -ivh gcc-c++-4.8.5-39.el7.x86_64.rpm  

1.5安裝mysql-devel gcc gcc-devel python-devel, 依次執行安裝(注意順序)

1.   rpm -ivh python-srpm-macros-3-32.el7.noarch.rpm  

2.   rpm -ivh python-rpm-macros-3-32.el7.noarch.rpm  

3.   rpm -ivh python2-rpm-macros-3-32.el7.noarch.rpm  

4.   rpm -ivh python-devel-2.7.5-86.el7.x86_64.rpm  

5.   rpm -ivh mariadb-devel-5.5.64-1.el7.x86_64.rpm  

1.6安裝sasl, 依次執行安裝(注意順序)

1.   rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm  

2.   rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm    

2.   安裝python3.6.5

2.1編譯安裝zlib

解壓python-3.6.5.tgz,進入Modules/zlib目錄

1.  #解壓  

2.  tar -zxvf Python-3.6.5.tgz  

3.  #進入python-3.6.5/Modules/zlib  

4.  cd Python-3.6.5/Modules/zlib  

5.  #編譯安裝zlib  

6.  ./configure  

7.  make install  

2.2編譯安裝python 3.6.5

将python3.6.5安裝至/usr/local/python3目錄

1.  #建立目錄  

2.  mkdir /usr/local/python3  

3.  #進入Python-3.6.5目錄,執行編譯安裝  

4.  cd Python-3.6.5  

5.  ./configure --prefix=/usr/local/python3 --enable-shared --with-ssl  

6.  make && make install  

2.3建立python3和pip3的軟鍊

1.  #建立python3的軟鍊  

2.  ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3  

3.  #建立pip3 的軟鍊  

4.  ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3  

2.4添加環境變量

1.  #編輯.bash_profile檔案  

2.  vi ~/.bash_profile  

3.  #加入以下内容  

4.  #環境變量,否則會報找不到libpython3.6m.so.1.0  

5.  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3/lib  

6.  #配置airflow需要的環境變量,   

7.  export AIRFLOW_HOME=~/airflow  

8.  export AIRFLOW_GPL_UNIDECODE=yes  

9.  #添加python3的目錄,否則無法識别airflow指令  

10.  export PATH=$PATH:/usr/local/python3/bin  

11.  #儲存退出,加載環境變量  

12.  source ~/.bash_profile  

測試pip3和python3指令,出現如下版本号則安裝成功

1.  [root@localhost Python-3.6.5]# pip3 -V  

2.  pip 9.0.3 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)  

3.  [root@localhost Python-3.6.5]# python3  

4.  Python 3.6.5 (default, Feb 28 2020, 22:31:30)   

5.  [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux  

6.  Type "help", "copyright", "credits" or "license" for more information.  

7.  >>>  

2.5更新pip3的版本

如上圖,pip3版本号為9.0.3,版本太低,如不更新會報pip目前版本無效的錯誤

進入安裝包的pip20.0.2目錄,執行以下語句:

1.  #進入安裝包pip20.0.2目錄  

2.  cd pip20.0.2  

3.  #安裝pip新版本  

4.  pip3 install pip-20.0.2-py2.py3-none-any.whl  

5.  #再次檢視版本,已更新為20.0.2  

6.  pip3 -V  

作業排程中心Apache Airflow部署初體驗1.   安裝必要的元件2.   安裝python3.6.53.   安裝airflow

3.   安裝airflow

3.1安裝airflow

進入安裝包airflow_1.10.9_all,執行安裝

1.  #進入安裝包airflow_1.10.9_all目錄  

2.  cd airflow_1.10.9_all  

3.  #執行安裝  

4.  pip3 install apache-airflow[all] --no-index -f ./  

安裝時間會比較長,如出現版本不相容的報錯,可忽略,如出現報錯,參考以下方法解決:

報錯:

1.  distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('pytest-runner')  

解決方法:

1.  #執行以下指令後,重新執行安裝  

2.  pip3 install pytest_runner-5.2-py2.py3-none-any.whl  

1.  gcc: error trying to exec 'cc1plus': execvp: No such file or directory  

進入安裝包的dependencies目錄,按照1.4的方法重新安裝gcc-c++,再傳回airflow_1.10.9_all目錄重新執行安裝

1.  distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('Cython!=0.25,<0.30,>=0.20')  

2.  pip3 install Cython-0.29.15-cp36-cp36m-manylinux1_x86_64.whl  

注:如還出現其他類似的缺少包的提示,都可使用pip3 install進行安裝,所有依賴的包都在airflow_1.10.9目錄裡,最終出現Successfully installed,表示安裝成功。

3.2初始化資料庫

1.   #初始化資料庫  

2.   airflow initdb  

3.3啟動airflow

1.   #啟動airflow web  

2.   #指定端口  

3.   airflow webserver -p xxx  

4.   #不指定端口,預設為8080,啟動成功後,通過

http://x.x.x.x:8080

通路  

5.   airflow webserver  

6.   #使用以下指令可使airflow不随視窗關閉而關閉,并将日志輸出(追加)到指定目錄

7.   nohup airflow webserver >> /airflow.log &

8.   #啟動airflow scheduler,必須啟動scheduler,否則web界面不更新新的dag等内容,  

9.   airflow scheduler  

作業排程中心Apache Airflow部署初體驗1.   安裝必要的元件2.   安裝python3.6.53.   安裝airflow

3.4更改資料庫為mysql

Airflow預設資料庫為SQLite,如需更改資料庫為mysql,請修改$AIRFLOW_HOME/airflow.cfg檔案,預設在~/airflow/airflow.cfg,加入以下内容

1.  #加入以下語句,格式如下:  

2.  #mysq://[db_username]:[db_password]@[db_host]:[db_port]/[db_name]  

3.  #例:  

4.  sql_alchemy_conn = mysql://root:root@localhost:3306/airflow?charset=utf8  

注:配置完後,重新使用airflow initdb初始化資料庫,請提前準備好資料庫及設定通路權限

3.5 中文化

進入airflow_1.10.9_all目錄,安裝Flask-BabelEx和PyMySQL

1.  pip3 install Flask_BabelEx-0.9.4-py3-none-any.whl  

2.  pip3 install PyMySQL-0.9.3-py2.py3-none-any.whl  

修改配置檔案,~/airflow/airflow.cfg

1.  #修改時區

2.  default_timezone = Asia/Shanghai  

3.  #不加載示例

4.  load_examples = False

将漢化包裡的檔案替換/usr/local/python3/lib/python3.6/site-packages/airflow目錄裡的檔案,再重新始初化資料庫,重新啟動服務