Apache Airflow ์„ค์น˜ ๊ฒฝํ—˜ Windows 10

์„œ๋ฌธ: ์šด๋ช…์˜ ์˜์ง€์— ๋”ฐ๋ผ ํ•™์ˆ  ๊ณผํ•™(์˜ํ•™)์˜ ์„ธ๊ณ„์—์„œ ์ •๋ณด ๊ธฐ์ˆ ์˜ ์„ธ๊ณ„์— ๋“ค์–ด์„ฐ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ณณ์—์„œ๋Š” ์‹คํ—˜ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•๋ก ๊ณผ ์‹คํ—˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ „๋žต์— ๋Œ€ํ•œ ์ง€์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ, ๋‚˜์—๊ฒŒ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ์Šคํƒ. ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์ตํžˆ๋Š” ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์–ด๋ ค์›€์— ์ง๋ฉดํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ด๋ฅผ ๊ทน๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด ๊ฒŒ์‹œ๋ฌผ์€ ์ด์ œ ๋ง‰ Apache ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ์‹œ์ž‘ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์š”์ ์€. ํƒ์›”ํ•œ ์กฐ Yuri Emelyanov๋Š” ๋ถ„์„ ์ ˆ์ฐจ ์ž๋™ํ™” ๋ถ„์•ผ์—์„œ Apache Airflow์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ฉด์„œ ์ œ์•ˆ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ธํŠธ๋ฅผ ์ž‘์—…์— ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง Apache Airflow์— ์ „ํ˜€ ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์€ ๊ฐ„๋‹จํ•œ ๊ฐœ์š”์— ๊ด€์‹ฌ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ ๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€ ํ™ˆํŽ˜์ด์ง€์—์„œ N. E. ๋ฐ”์šฐ๋งŒ.

์ผ๋ฐ˜์ ์ธ Airflow ์‹คํ–‰ ์ง€์นจ์ด ํ•ด๋‹น ํ™˜๊ฒฝ์— ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Windows๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์„ธ์š”. ๋„์ปค ์ œ ๊ฒฝ์šฐ์—๋Š” ์ค‘๋ณต๋  ๊ฒƒ ๊ฐ™์•„์„œ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์„ ์ฐพ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ๋‚˜๋Š” ์ด ๊ธธ์„ ์ฒ˜์Œ ๋ฐŸ์€ ์‚ฌ๋žŒ์ด ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ›Œ๋ฅญํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„๋””์˜ค ์ง€์นจ Apache Airflow ์„ค์น˜์— ๊ด€ํ•˜์—ฌ Windows 10 Docker๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  Apache Airflow๋ฅผ ์„ค์น˜ํ•ด ๋ณด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ถŒ์žฅ ์„ค์น˜ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด๋ฉด์„œ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋Š”๋ฐ, ์ €๋งŒ ๊ทธ๋Ÿฐ ๊ฑด ์•„๋‹ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ œ๊ฐ€ ๊ฒฝํ—˜ํ•œ Apache Airflow ์„ค์น˜ ๊ณผ์ •์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜๋„ ์žˆ๊ฒ ์ฃ .

์ง€์นจ์˜ ๋‹จ๊ณ„๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค(์Šคํฌ์ผ๋Ÿฌ - 5๋‹จ๊ณ„์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

1. ์„œ๋ธŒ์‹œ์Šคํ…œ ์„ค์น˜ Windows ์— Linux ๋ฐฐํฌํŒ์˜ ํ›„์† ์„ค์น˜๋ฅผ ์œ„ํ•ด Linux

๊ทธ๋“ค์ด ๋งํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ด๊ฒƒ์€ ๊ฐ€์žฅ ์ž‘์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ œ์–ดํŒ โ†’ ํ”„๋กœ๊ทธ๋žจ โ†’ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๊ธฐ๋Šฅ โ†’ ๊ธฐ๋Šฅ ์ผœ๊ธฐ/๋„๊ธฐ Windows โ†’ ํ•˜์œ„ ์‹œ์Šคํ…œ Windows ์— Linux

2. ๋ฐฐํฌํŒ ์„ค์น˜ Linux ์„ ํƒ์ ์œผ๋กœ

๋‚˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ–ˆ๋‹ค Ubuntu.

3. pip ์„ค์น˜ ๋ฐ ์—…๋ฐ์ดํŠธ

sudo apt-get install software-properties-common
sudo apt-add-repository universe
sudo apt-get update
sudo apt-get install python-pip

4. ์•„ํŒŒ์น˜ ์—์–ดํ”Œ๋กœ์šฐ ์„ค์น˜

export SLUGIFY_USES_TEXT_UNIDECODE=yes
pip install apache-airflow

5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋‚˜์˜ ์ž‘์€ ์–ด๋ ค์›€์ด ์‹œ์ž‘๋œ ๊ณณ์ž…๋‹ˆ๋‹ค. ์ง€์นจ์— ๋”ฐ๋ผ ๋ช…๋ น์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. airflow initdb ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋Š˜ ๋‹ต์žฅ์„ ๋ฐ›์•˜์–ด์š”. airflow: command not found. Apache Airflow๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ํ•„์š”ํ•œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์ด ๋…ผ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์žˆ์–ด์•ผ ํ•  ์œ„์น˜์— ์žˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ airflow ํŒŒ์ผ์˜ ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•จ). ะŸะพะปะฝั‹ะน/ะฟัƒั‚ัŒ/ะดะพ/ั„ะฐะนะปะฐ/airflow initdb). ํ•˜์ง€๋งŒ ๊ธฐ์ ์€ ์ผ์–ด๋‚˜์ง€ ์•Š์•˜๊ณ  ๋Œ€๋‹ต์€ ๊ฐ™์•˜์–ด์š” airflow: command not found. ํŒŒ์ผ์˜ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค(./.local/bin/airflow initdb), ์ด๋กœ ์ธํ•ด ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ModuleNotFoundError: No module named json'๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—…๋ฐ์ดํŠธ๋กœ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ์ˆ˜๋‹จ (๋‚ด ๊ฒฝ์šฐ์—๋Š” ๋ฒ„์ „ 0.15.4๊นŒ์ง€):

pip install werkzeug==0.15.4

Werkzeug์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

์ด ๊ฐ„๋‹จํ•œ ์กฐ์ž‘ ํ›„ ๋ช…๋ น ./.local/bin/airflow initdb ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

6. Airflow ์„œ๋ฒ„ ์‹คํ–‰

์ด๊ฒƒ์€ ๊ณต๊ธฐ ํ๋ฆ„์— ์ ‘๊ทผํ•˜๋Š” ๋ฐ ๋”ฐ๋ฅธ ์–ด๋ ค์›€์˜ ๋์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ช…๋ น ์‹คํ–‰ ./.local/bin/airflow webserver -p 8080 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค No such file or directory์•„๋งˆ ์ˆ™๋ จ๋œ ์‚ฌ์šฉ์ž์ผ ๊ฒ๋‹ˆ๋‹ค. Ubuntu ์ €๋Š” ์ฆ‰์‹œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์ ‘๊ทผ์— ์žˆ์–ด์„œ ๊ทธ๋Ÿฌํ•œ ์–ด๋ ค์›€์„ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. export PATH=$PATH:~/.local/bin/ (์ฆ‰, PATH ๋ณ€์ˆ˜์— ์ •์˜๋œ ๊ธฐ์กด ์‹คํ–‰ ํŒŒ์ผ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— /.local/bin/ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ)์ด์ง€๋งŒ, ์ด ๊ธ€์€ ์ฃผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Windows ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฌํ•œ ํ•ด๊ฒฐ์ฑ…์„ ๋‹น์—ฐํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์—์„œ ์„ค๋ช…ํ•œ ์กฐ์ž‘ ํ›„ ๋ช…๋ น ./.local/bin/airflow webserver -p 8080 ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

7.URL: ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ: 8080 /

์ด์ „ ๋‹จ๊ณ„์—์„œ ๋ชจ๋“  ๊ฒƒ์ด ์ˆœ์กฐ๋กญ๊ฒŒ ์ง„ํ–‰๋˜์—ˆ๋‹ค๋ฉด ์ด์ œ ๋ถ„์„ ์ •์ ์„ ์ •๋ณตํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„์—์„œ ์„ค๋ช…ํ•œ Apache Airflow ์„ค์น˜ ๊ฒฝํ—˜์ด ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. Windows 10 ์ด๋Š” ์ดˆ๋ณด ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ์šฉํ•˜๋ฉฐ ์ตœ์‹  ๋ถ„์„ ๋„๊ตฌ์˜ ์„ธ๊ณ„์— ๋” ๋นจ๋ฆฌ ์ง„์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ๋ฒˆ์—๋Š” ์ฃผ์ œ๋ฅผ ์ด์–ด๊ฐ€๋ฉฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ํ–‰๋™ ๋ถ„์„ ๋ถ„์•ผ์—์„œ Apache Airflow๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝํ—˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster