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
    
  • ダウンロードインストールパッケージ解凍apkは私が自分で作成したフォルダにインストールパッケージを置くための
  • です.
    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
    
  • 環境変数を構成するには、まずecho$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
    

    そして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
    
  • システムに付属のpython 2があるため検証する.xが存在するため、インストールpython 3を検証する.7の場合、以下のようにして
  • を検証する必要がある.
    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. 本文は問題があったらいつでも評論区で討論して、オリーはあげます.