Immersion In Data

Airflow

Airflow 설치

sungjunminn 2022. 11. 18. 16:17

Airflow란?

Airflow는 Python 코드로 워크플로우(workflow)를 작성하고, 스케줄링, 모니터링하는 플랫폼이다. Airflow를 통해 데이터엔지니어링의 ETL 작업을 자동화하고, DAG(Directed Acyclic Graph) 형태의 워크플로우 작성이 가능하다. 이를 통해 더 정교한 dependency를 가진 파이프라인을 설정할 수 있다. 또한 AWS, GCP 등 Airflow managed service를 제공할 정도로 전세계 데이터팀들에게 널리 사용되고 있으며 그만큼 넓은 커뮤니티를 형성하고 있다. 

 

Airflow 동작 원리

  • Scheduler : 모든 DAG와 Task에 대하여 모니터링 및 관리하고, 실행해야할 Task를 스케줄링한다. 
  • Web server : Airflow의 웹 UI서버이다. 
  • DAG : Directed Acyclic Graph로 개발자가 Python으로 작성한 워크플로우이다. Task들의 dependency를 정의한다. 
  • Database : Airflow에 존재하는 DAG와 Task들의 메타데이터를 저장하는 데이터베이스이다. 
  • Worker : 실제 Task를 실행하는 주체이다. Executor 종류에 따라 동작 방식이 다양하다. 

Airflow는 개발자가 작성한 Python DAG를 읽고, 거기에 맞춰 Scheduler가 Task를 스케줄링하면, Worker가 Task를 가져가 실행한다. Task의 실행상태는 Database에 저장되고, 사용자는 UI를 통해 각 Task의 실행 상태, 성공 여부 등을 확인할 수 있다. 

 

윈도우에서 WSL로 Apache Airflow 설치하기(1-1)

Airflow는 Windows 버전의 공식 설치를 지원하지 않고 있다. 하지만 아래의 2가지 방법으로 windows에서 apache airflow를 설치할 수 있다. 

  • WSL로 설치
  • Docker를 이용한 설치

본 포스트에서는 WSL(Windows Subsystem Linux)를 사용한 설치방법을 활용해보도록 하겠다. 

WSL이란 윈도우에서 Ubuntu, CentOS 등의 리눅스 커널을 사용할 수 있게 해주는 시스템이다. 

단, 윈도우10에서부터 WSL 기능을 지원한다.  

 

VirtualBox에서 Ubuntu로 Apache Airflow 설치하기(1-2)

 가상화 소프트웨어인 VirtualBox로 Ubuntu를 설치해 Airflow를 설치할 수 있다. 

본 포스팅은 1-2 VirtualBox로 설치하는 방법을 소개하겠다. 

 

 

1-1. WSL(Windows Subsystem Linux) 설치

WSL은 윈도우에 추가 기능으로 등록되어 있어, 해당 기능을 수동으로 켜주어야 한다. 

아래와 같이 'Windows 기능 켜기/끄기' 를 검색해 옵션 창을 열어 준다. 

 

목록에서 'Linux용 Windows 하위 시스템'을 체크한다. 

 

옵션을 켜고 확인을 누른 뒤 PC를 재부팅해야 적용이 되기 때문에 PC를 재부팅해준다. 

 

재부팅이 완료되면 설치할 리눅스를 다운로드 해주면 된다. 

리눅스는 마이크로소프트 앱스토어에서 간단하게 다운로드할 수 있다. 

아래와 같이 Microsoft Store를 검색하여 열어준다. 

 

ubuntu를 설치할 것이기 때문에 ubuntu를 검색해 ubuntu 20.04 버전을 설치한다. 

 

 

설치가 완료되면 시작 메뉴에서 ubuntu를 검색해 찾아 실행시켜주면 된다. 

 

 

최초 실행하게 되면, 자동으로 설치가 진행되고 몇 분 정도 기다려 주면 된다. 

설치가 완료되면 username을 입력할 수 있는 창이 나오고, 이를 입력 후 로그인 비밀번호까지 입력해주면 설치가 완료된다. 

 

 

1-2. VirtualBox 설치 후 Ubuntu 실행하기

https://developersj.tistory.com/21

 

[빅데이터 플랫폼 구축] VirtualBox로 리눅스 환경 구축

1. VirtualBox 설치 https://www.virtualbox.org/ Oracle VM VirtualBox Welcome to VirtualBox.org! News Flash New September 2nd, 2022VirtualBox 6.1.38 released! Oracle today released a 6.1 maintenance release which improves stability and fixes regressions. S

developersj.tistory.com

본 포스팅에서는 VirtualBox에서 Ubuntu를 설치해 Airflow를 실행해 보도록 하겠다. 

 

 

2. 설치된 패키지 업데이트

# 설치된 패키지 업데이트
sudo apt-get update

 

3. 우분투에 파이썬 가상환경 설치하기

 

sudo apt install python3.10-venv

 

4. 가상환경 생성

python3 -m venv venv-test-airflow

 

5. 가상환경 나가기

deactivate

 

6. pip 설치

sudo apt install python3-pip

 

7. 가상환경 실행

source venv-test-airflow/bin/activate

 

8. Airflow 설치

pip install apache-airflow

 

9. DB 초기화

airflow db init

 

10. 유저 계정 생성

airflow users create --username {Login_ID} --firstname {First_NAME} --lastname {Last_NAME} --role Admin --password {Password} --email {Email}

 

11. Webserver 띄우기

8080포트에 Webserver를 띄워준다. 

airflow webserver --port 8080

 

12. Scheduler 실행

다른 터미널 창에서 Scheduler을 실행한다.

airflow scheduler

 

 

13. Webserver 실행 화면 확인 

localhost:8080 페이지 접속 및 전에 생성했던 아이디 패스워드로 로그인한다. 

로그인을 하게 되면,

 

다음과 같이 접속이 잘 된 것을 확인할 수 있다.