やっと動いたのでメモ。
OS は Ubuntu Server 20.04 LTS に入れ替え済み。
何も考えずに Airflow の公式ドキュメントのとおりにインストールしたら、やれ pendulum がインストール出来ないやら pyarrow は PEP-517 がどうだのこうだのと言われてインストールがコケる。
PyYAML はもうインストールされてるから進めないとかいうエラーもあったな。
全部メモってない。
で、最終的にやった事はこちら。
libffi.so.6
libffi.so.6 が見つからないとか怒られるので libffi.so.7 のシンボリックリンク貼る。
sudo ln -s /usr/lib/aarch64-linux-gnu/libffi.so.7 /usr/lib/aarch64-linux-gnu/libffi.so.6
依存ツールのインストール
公式ドキュメントに書いてあったものと、ググった結果必要だったものをインストール。
sudo apt install -y --no-install-recommends \ freetds-bin \ krb5-user \ ldap-utils \ libsasl2-2 \ libsasl2-modules \ libssl1.1 \ locales \ lsb-release \ sasl2-bin \ sqlite3 \ unixodbc \ python3 \ python3-pip \ python-dev \ libatlas-base-dev
Python3関連
Python3関連のセットアップをする。
.bashrc に下記を追記
alias python=python3 alias pip=pip3
編集したら source コマンドで読み込み直す
で、このままインストールを始めても PEP-517 がどうだのこうだのと怒られるので、下記のコマンドを実行しておく。
pip install --upgrade pip setuptools wheel
Airflow 本体のインストール
やっと apahce-airflow のインストール
しかしここでもまた PyYAML が既にインストールされてるからどうのこうのとエラーが出るので無視して強制インストールw
AIRFLOW_VERSION=2.1.2 PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)" CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt" sudo pip install --ignore-installed PyYAML "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
初期化と起動
インストールしてしまえばあとはこちらのもんだ (謎
以下の手順で初期化して起動。
export AIRFLOW_HOME=~/airflow airflow db init airflow users create \ --username admin \ --firstname hoge \ --lastname fuga \ --role Admin \ --email hoge@example.com airflow webserver --port 8080 -D airflow scheduler -D
余計な事もやってしまってるかも知れんけど動いてるからおk
動くようになったら好きなパッケージを追加する。
俺は BigQuery 使うので GCP 用のパッケージを追加でインストールする。
sudo pip install apache-airflow-providers-google