๐ ๋ก์ปฌ ํ๊ฒฝ์์ Airflow ์ค์นํ๊ธฐ
1) ์ผ๋จ airflow ์ค์นํ ๊ฐ์ํ๊ฒฝ์ ์ธํ ํด์ค๋ค. ๋๊ฐ์ ๊ฒฝ์ฐ python venv ๊ฐ์ํ๊ฒฝ์ผ๋ก ์์ฑํ๋ค.
$ python3 -m venv ~/{directory_name}/{myenv}
2) airflow์ ํ ๋๋ ํ ๋ฆฌ ๋ํดํธ๊ฐ์ ~/airflow์ด๋ค.
๋ฐ๋ผ์ airflow๋ฅผ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ ์์์ ์คํ์ํค๊ณ ์ถ์ผ๋ฉด ํ๊ฒฝ๋ณ์๋ฅผ ์ธํ ํด์ฃผ์ด์ผ ํ๋ค.
$ export airflow=~/{directory_name}/airflow
๋๊ฐ์ ๊ฒฝ์ฐ airflow_test ๋ผ๋ ๋๋ ํ ๋ฆฌ ํ์์์ airflow ๋ฅผ ์คํ์์ผฐ๋ค.
3) ๊ฐ์ํ๊ฒฝ ํ์ฑํ
$ source {myenv}/bin/activate
4) airflow ์ค์น
(๊ณต์ document: https://airflow.apache.org/docs/apache-airflow/2.3.0/installation/installing-from-pypi.html)
$ pip install "apache-airflow[celery]==2.3.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.3.0/constraints-3.7.txt"
5) DB ์ด๊ธฐํ
Airflow๋ ๊ธฐ๋ณธ์ผ๋ก sqllite๋ฅผ ์ฌ์ฉํ๋ค.
์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด Home Directory์ airflow ํด๋๊ฐ ์์ฑ์ด ๋๋๋ฐ ์ด๋ฅผ ์ํ์ง ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์์ 2) ๋ฒ์ ์คํํ๋ฉด ๋๋ค.
$ airflow db init
6) ๊ณ์ ์์ฑ
airflow users create \
--username {LoginId} \
--firstname {FIRST_NAME} \
--lastname {LAST_NAME} \
--role Admin \
--password {password} \
--email {email}
7) Airflow dags ํด๋ ์์ฑ
Airflow ์ค์น ์ ์๋์ผ๋ก ์์ฑ๋์ง ์๊ธฐ ๋๋ฌธ์ airflow ํ์ ํด๋์ dags ํด๋๋ฅผ ์์ฑํด์ ์ด ์์ dag ํ์ผ์ ์์ฑํ๋ฉด ๋๋ค.
8) Airflow Webserver ๋์ฐ๊ธฐ
# ๊ธฐ๋ณธ(8080์ ์)
$ airflow webserver
# ํฌํธ์ค์
$ airflow webserver --port 8080
9) scheduler ์คํ
$ airflow scheduler
10) localhost:8080 ์ผ๋ก ์ ์ํ๋ฉด ์๋์ ๊ฐ์ด Airflow UI ๊ฐ ๋ฌ๋ค.
11) ๊ธฐํ์ค์
airflow.cfg ํ์ผ์ ์ ์ํด์
load_example=True -> load_example=False ๋ก ๋ณ๊ฒฝํ๋ฉด dag example์ด ๋จ์ง ์๋๋ค.
'Airflow' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Airflow] Branch๋ฅผ ์ด์ฉํด ์ํฉ์ ๋ง๋ task ์คํ(BranchPythonOperator) | LIM (0) | 2022.07.19 |
---|---|
[Airflow] Airflow Connection with Google Secret Manager | LIM (0) | 2022.06.16 |
[Airflow] CustomOperator ์์ฑ | LIM (0) | 2022.06.12 |
[Airflow] Datetime (feat. ์๋์คํ ๋ฐฉ์ง) (0) | 2022.05.14 |
[Airflow] Airflow ๊ธฐ๋ณธ ๊ฐ๋ (2) | 2021.08.14 |
๋๊ธ