IT 삽질기

Docker를 이용한 Airflow 2.0.2 실행하기(1) 본문

BigData/Airflow

Docker를 이용한 Airflow 2.0.2 실행하기(1)

화이팅빌런 2021. 5. 13. 23:58

이전 4개의 포스팅으로 CentOS에 Airflow를 설치하고 실행시켜보았다.

2021.01.27 - [BigData/Airflow] - Airflow 2.0 설치하기(1)

2021.01.29 - [BigData/Airflow] - Airflow 2.0 설치하기(2)

2021.03.21 - [BigData/Airflow] - Airflow 2.0 설치하기(3)

2021.05.03 - [BigData/Airflow] - Airflow 2.0 설치하기(4)

마지막 글에서처럼 오늘은 Airflow에서 제공하는 가이드 문서에 따라 Airflow를 올려보도록 하자.

 

먼저 가이드 문서의 링크를 확인해보자

http://airflow.apache.org/docs/apache-airflow/stable/start/docker.html

글을 작성하는 2021-05-13 기준 최신버전은 2.0.2로 해당 버전으로 진행한다.

 

Docker를 이용해 설치하는 방법과 서버에 직접 설치하는 방법에 대한 가이드를 제공하는데 Docker을 이용해 설치를 진행할 것이므로  Docker와 Docker Compose가 필요하다.

 

airflow에서 제공하는 docker-compose.yml을 다운로드 하기 위해 아래의 명령어를 실행한다.

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.0.2/docker-compose.yaml'

다운받은 docker-compose.yml 파일을 살펴보면 dockper에서 사용하는 서비스들에 대한 정의가 들어있는데 일부분만 살펴보도록 하자.

Airflow에서 사용할 서비스에 대해 정의가 되어 있는 부분으로 DB로는 postgresql DB, Celery Executor을 사용하기 위해 redis까지 설정되어 있는 것을 확인할 수 있고, API_AUTH_BACKEND로 basic_auth가 설정되어 있는데, airflow에 등록된 id/pw를 이용해 인증하는 방식이다. 해당 내용을 설정하지 않으면 deny_all로 되어 있어 직접 설치하여 사용하려는 경우에는 해당 설정값을 변경해주어야 한다.

다음으로 volumes의 옵션을 살펴보면, dag, logs, plusins에 대한 부분이 설정되어 있는데, 가이드 문서에 작성되어 있는 것처럼 해당 dir을 미리 만들어 dag 작성 및 logs, plugins에 대한 컨트롤을 로컬에서도 진행할 수 있을 것이다.

 

아래에 있는 부분은 각 서비스에 대한 상세설정 및 port에 대한 부분으로 구성되어 있는데 필요에 따라 변경하면 될 것 같다.

여기서는 아무것도 수정하지 않은 상태로 airflow를 올리도록 한다.

위에서 설명한 dags, logs, plugins dir을 미리 만들고 AIRFLOW_UID, AIRFLOW_GID에 대한 부분을 설정한다

mkdir ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env

 

이제 airflow init을 진행하면 된다.

docker-compose up airflow-init

정상적으로 종료가 된 경우 아래의 메세지가 표시되며,

airflow-init_1       | Upgrades done
airflow-init_1       | Admin user airflow created
airflow-init_1       | 2.0.2
start_airflow-init_1 exited with code 0

 

Airflow를 실행하기 위한 기본 설정이 완료된 상태이다.

이제 Airflow를 실행시켜보도록 하자

docker-compose up

위의 명령어를 실행하면 docker-compose에 정의되어 있던 redis, flower, scheduler, webserver 등 다양한 container가 올라오게 되는데, 조금 기다린 이후 webserver로 접근해보도록 하자.

 

webserver은 설정값을 수정하지 않았다면 http://localhost:8080/을 통해 접근할 수 있으며,

아래와 같은 화면이 보이면 정상적으로 올라온 것이다.

 

airflow / airflow가 기본적으로 생성된 계정이므로 id / pw를 입력하고 webserver에 로그인해보자

 

정상적으로 로그인이 되면 아래와 같은 화면을 볼 수 있으며, example로 작성된 dag를 확인할 수 있다.

 

오늘은 Airflow에서 공식으로 제공하는 docker-compose를 이용해 Airflow를 실행시켜 보았다.

공식 문서에는 Linux, MacOS에서 airflow에 접근할 수 있는 방법에 대해 소개했는데 관련 내용은 다음 포스팅에서 다루도록 한다.

'BigData > Airflow' 카테고리의 다른 글

Airflow dag_run.conf 사용하기  (2) 2021.05.26
Airflow에서 Jinja template 사용하기  (0) 2021.05.19
Airflow 2.0 설치하기(4)  (0) 2021.05.03
Airflow HiveOperator LDAP 연결  (0) 2021.04.27
Airflow HiveServer2Hook LDAP 연결  (0) 2021.04.23
Comments