ubuntu 22.04์์ systemd๋ฅผ ์ฌ์ฉํด์ airflow ๋ฐ๋ชฌ์ ์์ฑํด๋ด ๋๋ค. linux์๋ ์ฌ์ฉ์ ์ ์ ์๋น์ค๋ฅผ ์์ฑํด์ ์์คํ ์ ๋ถํ ํ ๋ ์์ํ ์ ์์ต๋๋ค.airflow webserver์ scheduler์ฉ ์๋น์ค๋ฅผ ์์ฑํ๊ณ ์คํํ๋ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
์๋น์ค ํ์ผ ์์ฑ
์๋น์ค ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
sudo vi /etc/systemd/system/airflow-webserver.service
์ด์ ์๋น์ค ํ์ผ์ ๋ด์ฉ์ ์๋์ ๊ฐ์ด ๊ตฌ์ฑํฉ๋๋ค.
[Unit]
Description=Airflow webserver daemon
After=network.target mysql.service
Wants=mysql.service
[Service]
Environment="PATH=$PATH:/home/<user_name>/airflow_env/bin:/home/<user_name>/airflow/"
User=<user_name>
Group=<group_name>
Type=simple
ExecStart=/home/<user_name>/airflow_env/bin/airflow webserver
Restart=on-failure
RestartSec=5s
PrivateTmp=true
[Install]
WantedBy=multi-user.target
์ ๊ตฌ์ฑ์ ๋ํ ์ค๋ช
- Description: ์๋น์ค์ ๋ํ ์ค๋ช
- After: ๋ฐ๋ชฌ์ ์คํํ๋๋ฐ ํ์ํ ์๋น์ค๊ฐ ์์๋ ํ์ ์คํ๋์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด์ airflow๋ ์์ํ๊ธฐ ์ ์ network, mysql์ด ์ค๋น๋์ด์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ ์์ฑํฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก ํ์ํ ์๋น์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- Enviroment: ์๋น์ค์ ํ์ํ ํ๊ฒฝ๋ณ์๋ค์ ์ง์ ํฉ๋๋ค. Environment์ ๊ฐ์ PATH = [path๋ณ์ ๊ฐ] HIVE_HOME=/opt/apache-hive-3.1.2-bin ์ฒ๋ผ [ํ๊ฒฝ๋ณ์๋ช ]=[ํ๊ฒฝ๋ณ์๊ฐ] ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
- User: ๋ก๊ทธ์ธ ์ฌ์ฉ์๋ช , ์๋น์ค ํธ์ถํ๋ ์ฌ์ฉ์๋ช ์ ๋๋ค.
- ExecStart: ์คํํ ๋ช ๋ น์ด๋ฅผ ์ง์ ํ๊ฑฐ๋ ์คํฌ๋ฆฝํธ์ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์ ๋ anaconda ํ๊ฒฝ์ airflow๊ฐ ์ค์น๋์ด์์๊ณ , ํฌํธ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ๋ค์ ๋ช ๋ น์ด๋ก ์ ๋ ฅํ์ต๋๋ค.
/root/anaconda3/bin/airflow webserver --port 5555
- Restart: ์๋น์ค ์คํ์ ์คํจํ์ ๊ฒฝ์ฐ ๋ค์ ์คํํ๋๋ก ํฉ๋๋ค.
- RestartSec: systemd๋ 100ms ํ์ ๋ค์ ์์์ ์๋ํ๋ฉฐ, ์ด ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ๋๊ธฐํ ์ด๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์์ ๊ฐ์ด ๋ด์ฉ์ ์์ฑํ ๋ค์ ์๋น์ค๋ฅผ ์์ํฉ๋๋ค.
์๋น์ค ๋ก๋, ํ์ฑํ, ์์
์๋น์ค ๋ก๋ํ๊ธฐ
sudo systemctl daemon-reload
์๋น์ค ํ์ฑํํ๊ธฐ
sudo systemctl enable airflow-webserver.service
์๋น์ค ์์ํ๊ธฐ
sudo systemctl start airflow-webserver.service
์๋น์ค๋ฅผ ์์ํ ํ ์๋น์ค ์ํ ํ์ธ
sudo systemctl status airflow-webserver.service
์๋น์ค๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์์ํ๋ฉด ์๋์ ๊ฐ์ด active์ํ๋ก ์์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ํ์๋๋ฉด ์์คํ ๋ถํ ์ ์์ํ๋ ์๋น์ค๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ฑ๋กํ ๊ฒ์ ๋๋ค.
airflow scheduler์ ๋ํ ์๋น์ค๋ webserver์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์งํํ๊ณ ExecStart ๋ถ๋ถ์์ webserver๋ง scheduler๋ก ๋์ฒดํ๋ฉด ๋ฉ๋๋ค.
refernece
'note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋คํธ์ํน์ ํตํด ๋ฐฐ์ด ๊ฒ๋ค (0) | 2023.12.31 |
---|---|
airflow ์ฌ์ฉ๊ธฐ (0) | 2023.12.05 |
[python] segno ํจํค์ง๋ฅผ ์ด์ฉํ์ฌ ๋๋ง์ QR์ฝ๋ ๋ง๋ค๊ธฐ (0) | 2023.11.14 |
[MLOps] MLOps์ ์ํคํ ์ฒ์ ์ํฌํ๋ก์ฐ (0) | 2023.11.08 |
[MLOps] MLOps์ ์์น๊ณผ ๊ตฌ์ฑ์์ (0) | 2023.11.08 |