Centos 7 Apache-Airflowのインストール
8714 ワード
Centos 7 Apache-Airflowのインストール
本文はただ運行airflowをインストールすることに適して、本人もちょうど穴に入ったばかりairflowは強大な理論知識がなくて、この文をするしかなくて、後人がこの穴に入らないcentos 7のインストールは多くbbがなくて運行環境を忘れました:centos 7 python 3.7 airflow 1.10.9 centos 7はpython 2を持参する.xバージョンでは、システムに付属するpython 2を削除しないでください.x、削除するとyumが使えなくなるので、もちろん他の方法もあるので、削除しないほうがいいです
python 3をインストールします。7
ここではpython 3インストールを参考に
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
cd /usr/local/apk
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar -xvJf Python-3.7.0.tar.xz
mkdir /usr/local/python3 #
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/apk/jdk1.8.0_191/bin:/usr/local/nginx/sbin:/mnt/web/nginxs/sbin:/root/bin
そしてpython 3を7アドレスを後で追加して/etc/profileに設定します
vim /etc/profile
#
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/apk/jdk1.8.0_191/bin:/usr/local/nginx/sbin:/mnt/web/nginxs/sbin:/root/bin:/usr/local/python3/bin
#
source /etc/profile
python3 -V
pip3 -V
pipソースの構成
pipのデフォルトソースは外部ネットワークでかなり遅いので、国内のソースを構成する必要があります.
[root@localhost ~]# cd ~
[root@localhost ~]# mkdir .pip
[root@localhost ~]# cd .pip
[root@localhost .pip]# vim pip.conf
# pip.conf
[global]
index-url=http://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com
ここに配置されているのはアリ源や清華大学源などで、自分でネットで検索すればいいです.
airflowのインストール
#
yum install python-devel
yum install libevent-devel
yum install mysql-devel
#
export SLUGIFY_USES_TEXT_UNIDECODE=yes
#
vi /etc/profile
#airflow
export AIRFLOW_HOME=~/airflow
# source
source /etc/profile
# airflow
pip3 install apache-airflow
インストールに成功したら表示
[root@localhost .pip]# airflow version
[2020-04-10 18:30:38,653] {settings.py:253} INFO - settings.configure_orm(): Using pool settings. pool_size=5, max_overflow=10, pool_recycle=1800, pid=2715
____________ _____________
____ |__( )_________ __/__ /________ __
____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / /
___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ /
_/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/ v1.10.9
これはインストールに成功したことを示しています.
airflowの構成
airflowはデータベースを操作する必要があるので、ここではmysqlデータベースを使用しています.
#
pip install pymysql
プロファイル~/airflow/airflowを変更する.cfg
[core]
executor = LocalExecutor #
sql_alchemy_conn = mysql+mysqldb://root:[email protected]:3306/airflow
# executor
SequentialExecutor: , ,
LocalExecutor:
CeleryExecutor: ,
DaskExecutor : ,
ここに穴がある前にpymysqlをインストールして直接エラーを報告することを知らなかった.
ModuleNotFoundError: No module named 'MySQLdb'
python 3はmysqldbをサポートしていないので、pymysqlまたはmysqlclientでok python 2はmysqldbをサポートします
SQL: ALTER TABLE dag CHANGE last_scheduler_run last_scheduler_run DATETIME(6) NULL](Background on this error at: http://sqlalche.me/e/f405)
バージョン問題ピット、私の本機用mysql 5.5このDateTime関数を修正できない問題は、私はずっと解決方法を見つけていません.その後、5.5より高いバージョンを使いました.
Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
timestampというデータ型には、デフォルト値でMySql-5.6.6がexplicitを破棄したピットがあります.defaliazhpults_for_timestampというシステム変数.私のバージョンは5.6.6より高いので、落ちました.2つの解決方法1.ソースコードDATETIME(fsp=6)2を修正する.mysql構成explicit_defaults_for_timestamp=trueもちろん2つ目は、airflowのライブラリを最初に作成することを忘れないでください.そうしないと、データベースのテーブルを作成します.つまり、airflowを初期化するために使用されるデータベースです.
airflow initdb
airflow運転
コマンドの実行
airflow webserve
airflow webserve -D #
ポートを指定して実行することもできますが、詳細はairflow実行コマンドを参照してください.ここで実行している間に穴にぶつかりました.
sqlalchemy.exc.NoInspectionAvailable: No inspection system is available for object of type <class 'method'>
なぜなら私のsqlalchemyバージョンの問題です.私のこの環境バージョンは高くなりました.
pip3 uninstall SQLAlchemy
pip3 install SQLAlchemy==1.3.15
サーバーのipアドレス+8080ポートにアクセスすると実行されますhttp://localhost:8080. 本文は問題があったらいつでも評論区で討論して、オリーはあげます.