インストールプロセス
インストール方法の一部参考:Linux仮想マシン:ビッグデータクラスタ基本環境構築(Hadoop、Spark、Flink、Hive、Zookeeper、Kafka、Nginx)
1.Pythonのインストール
現在インストールされているバージョンは Python-3.9 で、ソース パッケージを使用してインストールします。
- ソースパッケージのダウンロードまたはwgetのダウンロード
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
- 指定したディレクトリに解凍します
tar -zxvf Python-3.9.6.tgz
- インストール環境による
sudo yum -y install vim unzip net-tools && sudo yum -y install wget && sudo yum -y install bzip2 && sudo 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 && sudo yum -y install libglvnd-glx && sudo yum -y install gcc gcc-c++
- 事前設定された
cd Python-3.9.6
./configure --prefix=/xxx/program/python3
- コンパイルしてインストールする
make && make install
- 環境変数を構成するか、Python3 ソフト リンクを /usr/bin に配置します。
sudo ln -s /xx/xx/python3.9 /usr/bin/python3.9
sudo ln -s /xx/xx/pip3.9 /usr/bin/pip3.9
2. エアフローの取り付け
- ピップを更新する
pip3.9 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
- 更新 setuptools
pip3.9 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
- ダウンロードエアフロー
pip3.9 install apache-airflow -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
- エアフロー環境コマンドを構成する
sudo ln -s /xxx/python-3.9.6/bin/airflow /usr/bin/airflow
3. エアフロー構成
ここでは docker でインストールした mysql5.7 を使用しています 詳細については、「 Linux 仮想マシン: ビッグ データ クラスターの基本環境の構築 (Hadoop、Spark、Flink、Hive、Zookeeper、Kafka、Nginx)」
公式ドキュメント:セットアップを参照してください。 MySQL データベース
- 接続ドライバーをダウンロードする
pip3.9 install mysql-connector-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
- airflow.cfg ファイルを変更する
- このファイルは、対応するユーザーのホーム ディレクトリ、つまり ~/airflow/airflow.cfg にあります。
- [database] モジュールを見つけて、前の sqlite をコメントアウトし、新しい mysql 設定を追加します。
sql_alchemy_conn = mysql+mysqlconnector://root:123456@hybrid03:3306/airflow_db
- MySQLデータベースを作成する
create database airflow_db character set utf8mb4 collate utf8mb4_unicode_ci;
- 構成ファイル my.cnf を変更します。
- docker によってインストールされた mysql5.7 の My.cnf は /etc/my.cnf にあり、マウントされた構成フォルダーにコピーし、ホスト マシンを介して変更し、元のフォルダーを上書きできます (vi/vim はありません) Docker コンテナ)
- my.cnf [mysqld] に次の設定を追加し、変更後に mysql を再起動します (docker restart mysql)
explicit_defaults_for_timestamp=1
- エアフローDBの初期化
airflow db init
- ローカルスケジューラを変更する
- airflow.cfg を変更し、元の設定をコメントアウトして、executor = LocalExecutor に変更します。
- ユーザーを作成
airflow users create --username admin --firstname admin --lastname admin --role Admin --email [email protected]
- 起動
airflow webserver -p 8080 -D
airflow scheduler -D
- ストップ
ps -ef | egrep 'scheduler|airflow-webserver'| grep -v grep | awk '{print $2}' | xargs kill -15
4. 既存ピット
- ダウンロードした airflow コマンドは、Python インストール ディレクトリの bin ディレクトリにあります。環境変数が設定されていない場合は、そのようなコマンドは存在しないものとみなされます。
- 当初setuptoolsが更新されておらず、所々でerror:subprocess-exited-with-errorが報告されましたが、その後setuptoolsを更新したところスムーズにインストールされました。
Collecting unicodecsv>=0.14.1
Downloading http://pypi.doubanio.com/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz (10 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
- airflow コマンドを使用してエラーを報告する: airflow.Exceptions.AirflowConfigException: エラー: sqlite C ライブラリのバージョンが古すぎます (< 3.15.0)
- Airflow はデフォルトで sqlite をデータベースとして使用します。システムのデフォルトのバージョンは低すぎます。このデータベースを使用したい場合は、手動で更新する必要があります。通常は、MySQL に変更することをお勧めします。
- sqlalchemy.exc.ProgrammingError: (mysql.connector.errors.ProgrammingError) 1067 (42000): 'updated_at' のデフォルト値が無効です
- 理由: フィールド「update_at」はタイムスタンプ型であり、デフォルト値は null であるため、失敗します。
- MySQL my.cnf を変更します。上記の手順を参照してください。