大数据调度平台Airflow(三):Airflow单机搭建
目錄
Airflow單機搭建
一、安裝Anconda及python3.7
1、官網(wǎng)下載Anconda ,選擇linux版本,并安裝
2、將下載好的anconda安裝包上傳至mynode4節(jié)點,進行安裝
3、配置Anconda的環(huán)境變量
4、安裝python3.7 python環(huán)境
5、激活使用python37 python環(huán)境
二、單機安裝Airflow
1、安裝Airflow必須需要的系統(tǒng)依賴
2、在MySQL中創(chuàng)建對應(yīng)的庫并設(shè)置參數(shù)
3、安裝Airflo
4、配置Airflow使用的數(shù)據(jù)庫為MySQL
5、安裝需要的python依賴包
6、初始化Airflow 數(shù)據(jù)庫
7、創(chuàng)建管理員用戶信息
三、啟動Airflow
1、啟動webserver
2、啟動scheduler
3、訪問Airflow webui
Airflow單機搭建
Airflow是基于Python的,就是Python中的一個包。安裝要求Python3.6版本之上,Metadata DataBase支持PostgreSQL9.6+,MySQL5.7+,SQLLite3.15.0+。
一、安裝Anconda及python3.7
1、官網(wǎng)下載Anconda ,選擇linux版本,并安裝
下載官網(wǎng)地址:https://www.anaconda.com/products/individual#macos
2、將下載好的anconda安裝包上傳至mynode4節(jié)點,進行安裝
sh Anaconda3-2020.02-Linux-x86_64.sh 【一路回車即可】
Do you accept the license terms? [yes|no]
Yes【繼續(xù)回車】
... ...
Anaconda3 will now be installed into this location:
/root/anaconda3- Press ENTER to confirm the location- Press CTRL-C to abort the installation- Or specify a different location below[/root/anaconda3] >>> 【回車即可,安裝到/root/anaconda3路徑下】
... ...
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>>yes【輸入yes,回車即可】
... ...
【安裝完成】
3、配置Anconda的環(huán)境變量
在 /etc/profile中加入以下語句:
export PATH=$PATH:/root/anaconda3/bin
#使環(huán)境變量生效
source /etc/profile
4、安裝python3.7 python環(huán)境
conda create -n python37 python=3.7
5、激活使用python37 python環(huán)境
conda activate python37【激活使用python37環(huán)境,需要先執(zhí)行下source activate】
相關(guān)命令如下:
source activate 【初始化conda,必須執(zhí)行,執(zhí)行之后可以使用conda命令激活環(huán)境】
conda deactivate 【退出當(dāng)前base環(huán)境】
conda activate python37【激活使用python37環(huán)境】
conda deactivate 【退出當(dāng)前使用python37環(huán)境】
conda remove -n python37 --all 【刪除python37環(huán)境】
二、單機安裝Airflow
單節(jié)點部署airflow時,所有airflow 進程都運行在一臺機器上,架構(gòu)圖如下:
1、安裝Airflow必須需要的系統(tǒng)依賴
Airflow正常使用必須需要一些系統(tǒng)依賴,在mynode4節(jié)點上安裝以下依賴:
yum -y install mysql-devel gcc gcc-devel python-devel gcc-c++ cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib
2、在MySQL中創(chuàng)建對應(yīng)的庫并設(shè)置參數(shù)
aiflow使用的Metadata database我們這里使用mysql,在node2節(jié)點的mysql中創(chuàng)建airflow使用的庫及表信息。
CREATE DATABASE airflow CHARACTER SET utf8;
create user 'airflow'@'%' identified by '123456';
grant all privileges on airflow.* to 'airflow'@'%';
flush privileges;
在mysql安裝節(jié)點node2上修改”/etc/my.cnf”,在[mysqld]下添加如下內(nèi)容:
[mysqld]
explicit_defaults_for_timestamp=1
注意:以上配置explicit_defaults_for_timestamp 系統(tǒng)變量決定MySQL服務(wù)端對timestamp列中的默認值和NULL值的不同處理方法。此變量自MySQL 5.6.6 版本引入,默認值為0,在默認情況下,如果timestamp列沒有顯式的指明null屬性,那么該列會被自動加上not null屬性,如果往這個列中插入null值,會自動的設(shè)置該列的值為current timestamp值。當(dāng)這個值被設(shè)置為1時,如果timestamp列沒有顯式的指定not null屬性,那么默認的該列可以為null,此時向該列中插入null值時,會直接記錄null,而不是current timestamp,如果指定not null 就會報錯。
在Airflow中需要對應(yīng)mysql這個參數(shù)設(shè)置為1。以上修改完成“my.cnf”值后,重啟Mysql即可,重啟之后,可以查詢對應(yīng)的參數(shù)是否生效:
#重啟mysql
[root@node2 ~]# service mysqld restart#重新登錄mysql查詢
mysql> show variables like 'explicit_defaults_for_timestamp';
3、安裝Airflo
在node4上切換python37環(huán)境,安裝airflow,指定版本為2.1.3
(python37) [root@node4 ~]# conda activate python37
(python37) [root@node4 ~]# pip install apache-airflow==2.1.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
默認Airflow安裝在$ANCONDA_HOME/envs/python37/lib/python3.7/site-packages/airflow目錄下。Airflow文件存儲目錄默認在/root/airflow目錄下,但是這個目錄需要執(zhí)行下“airflow version”后自動創(chuàng)建,查看安裝Airflow版本信息:
(python37) [root@node4 ~]# airflow version
2.1.3
注意:如果不想使用默認的“/root/airflow”目錄當(dāng)做文件存儲目錄,也可以在安裝airflow之前設(shè)置環(huán)境變量:?
(python37) [root@node4 ~]# vim /etc/profile
export AIRFLOW_HOME=/software/airflow#使配置的環(huán)境變量生效
source /etc/profile
?這樣安裝完成的airflow后,查看對應(yīng)的版本會將“AIRFLOW_HOME”配置的目錄當(dāng)做airflow的文件存儲目錄。
4、配置Airflow使用的數(shù)據(jù)庫為MySQL
打開配置的airflow文件存儲目錄,默認在$AIRFLOW_HOME目錄“/root/airflow”中,會有“airflow.cfg”配置文件,修改配置如下:
[core]
dags_folder = /root/airflow/dags#修改時區(qū)
default_timezone = Asia/Shanghai# 配置數(shù)據(jù)庫
sql_alchemy_conn=mysql+mysqldb://airflow:123456@node2:3306/airflow?use_unicode=true&charset=utf8[webserver]
#設(shè)置時區(qū)
default_ui_timezone = Asia/Shanghai#設(shè)置DAG顯示方式
# Default DAG view. Valid values are: ``tree``, ``graph``, ``duration``, ``gantt``, ``landing_times``
dag_default_view = graph[scheduler]
#設(shè)置默認發(fā)現(xiàn)新任務(wù)周期,默認是5分鐘
# How often (in seconds) to scan the DAGs directory for new files. Default to 5 minutes.
dag_dir_list_interval = 30
5、安裝需要的python依賴包
初始化Airflow數(shù)據(jù)庫時需要使用到連接mysql的包,執(zhí)行如下命令來安裝mysql對應(yīng)的python包。
(python37) [root@node4 ~]# pip install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple
6、初始化Airflow 數(shù)據(jù)庫
(python37) [root@node4 airflow]# airflow db init
?初始化之后在MySQL airflow庫下會生成對應(yīng)的表。
7、創(chuàng)建管理員用戶信息
在node4節(jié)點上執(zhí)行如下命令,創(chuàng)建操作Airflow的用戶信息:
airflow users create \--username airflow \--firstname airflow \--lastname airflow \--role Admin \--email xx@qq.com
?執(zhí)行完成之后,設(shè)置密碼為“123456”并確認,完成Airflow管理員信息創(chuàng)建。
三、啟動Airflow
1、啟動webserver
#前臺方式啟動webserver
(python37) [root@node4 airflow]# airflow webserver --port 8080#以守護進程方式運行webserver,端口默認8080。 ps aux|grep webserver查看后臺進程
airflow webserver --port 8080 -D
2、啟動scheduler
新開窗口,切換python37環(huán)境,啟動Schduler:
#前臺方式啟動scheduler
(python37) [root@node4 ~]# airflow scheduler#以守護進程方式運行Scheduler,ps aux|grep scheduler 查看后臺進程airflow scheduler -D
3、訪問Airflow webui
瀏覽器訪問:http://node4:8080?
?輸入前面創(chuàng)建的用戶名:airflow 密碼:123456
- 📢博客主頁:https://lansonli.blog.csdn.net
- 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創(chuàng),首發(fā)于 CSDN博客🙉
- 📢大數(shù)據(jù)系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學(xué)習(xí),全力奔赴更美好的生活?
總結(jié)
以上是生活随笔為你收集整理的大数据调度平台Airflow(三):Airflow单机搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据调度平台Airflow(一):什么
- 下一篇: 大数据调度平台Airflow(五):Ai