๊ฐ์
airflow ๊ด๋ จํด์ ๊ฐ๋จํ๊ฒ ํ ์คํธํ๊ธฐ ์ํด์ ๋ก์ปฌํด์ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ คํ๋ค
์งํ
Step 1. ๊ฐ์ ํ๊ฒฝ
ํ์ ์ฌํญ์ ์๋์ง๋ง pip ๋ฒ์ ์ผ๋ก ํฌ๊ฒ ๊ณจ์น ์ํ๊ณ ์ถ์ง ์๊ธฐ์ ๋ฌด์กฐ๊ฑด์ ์ผ๋ก set up ํด์ค๋ค
# Create a virtual environment
python3 -m venv airflow-venv
# Activate the virtual environment
source airflow-venv/bin/activate
Step 2. Apache Airflow ์ค์น
pip์ ์ด์ฉํด์ ์ค์นํด์ค๋ค.
AIRFLOW_VERSION=2.5.1
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"
pip3 install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
Step 3. Airflow Database ์ด๊ธฐํ
Airflow ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๊ธฐํ๋ Airflow๊ฐ ์๋ํ๊ธฐ ์ํ ํ์์ ์ธ ์ธํ๋ผ๋ฅผ ์ค์ ํ๋ ๊ธฐ๋ณธ ๋จ๊ณ๋ค.
์ด๊ธฐํ๋ฅผ ํตํด ๋ชจ๋ ๋ฉํ๋ฐ์ดํฐ, ๊ตฌ์ฑ ๋ฐ ์ถ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ์ฌ scheduler์ web interface๊ฐ ์์๋๋ก ์๋ํ ์ ์๋๋ก ๋ณด์ฅํ๋ค. ์ด ๋จ๊ณ๋ฅผ ์๋ตํ๋ฉด Airflow๋ ์ํฌํ๋ก์ฐ๋ฅผ ๊ด๋ฆฌํ๊ฑฐ๋ ์คํํ ์ ์๋ค.
# Initialize the Airflow database
airflow db init
Step 4. Admin ๊ณ์ ์ถ๊ฐ
airflow ui์ ์ ๊ทผํ username, password๋ฅผ ์๋์์ ์ค์ ํด์ค๋ค.
๋๋ admin, admin์ผ๋ก ์ค์ ํ๋ค. ์์ ๊ฐ๋ฅํ๋ค.
# Create an admin user
airflow users create \
--username admin \
--password admin \
--firstname Admin \
--lastname User \
--role Admin \
--email admin@example.com
Step 5. Airflow Web Server ์ Scheduler ์คํ
์ฒซ๋ฒ์งธ ํฐ๋ฏธ๋์์ web server๋ฅผ ์คํ์ํจ๋ค.
* web server๋ ์ฌ์ฉ์๊ฐ DAG ๋ฐ ์์ ์ ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ui๋ฅผ ์ ๊ณตํ๊ณ , airlow ์ค์ ๋ฐ ๊ตฌ์ฑ์ ํธ๋ฆฌํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ค.
# Start the web server
airflow webserver --port 8080
๋๋ฒ์งธ ํฐ๋ฏธ๋์์ scheduler๋ฅผ ์คํ์ํจ๋ค.
* scheduler๋ ์์ ์ ์ค์ผ์ค๋ง๊ณผ ์คํ์ ๋ด๋นํ๋ค. DAG์ ์ ์๋ ์ผ์ ์ ๋ฐ๋ผ ์์ ์ ์คํํ๊ณ , ์์ ๊ฐ์ ์์กด์ฑ์ ๊ด๋ฆฌํ๊ณ ์ ์ ํ ์์๋ก ์คํํ๊ณ , ์์ ์ํ๋ฅผ ์ถ์ ํ๊ณ ์ ๋ฐ์ดํธํ๋ค.
# Start the scheduler
airflow scheduler
Step 6. Airflow Web ์ธํฐํ์ด์ค์ ์ ๊ทผ
web server ์คํ์ํฌ ๋ ์ค์ ํ ํฌํธ 8080์ผ๋ก ์ ๊ทผํ๋ฉด ๋๋ค. http://localhost:8080
๊ทธ๋ฆฌ๊ณ user ์์ฑํ ๋ ์ค์ ํ username, password๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๊ทผ ๊ฐ๋ฅํ๋ค.