IT 삽질기

Airflow 2.0 설치하기(3) 본문

BigData/Airflow

Airflow 2.0 설치하기(3)

화이팅빌런 2021. 3. 21. 23:24

지난 글에서 Airflow를 설치하고, webserver까지 실행하는 것을 완료했다

오늘은 mysql과의 연동 과정을 진행한다

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

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

 

Airflow github페이지를 살펴보면 사용 가능한 DB에 대해 아래와 같이 나와있다

github.com/apache/airflow

이번 글에서는 MySQL 5.7버전을 사용해 테스트를 진행하고

다음 글에서 MySQL 8버전에 대한 테스트를 진행한다

MySQL 8버전을 사용하면 Scheduler HA를 사용할 수 있는데 이 부분 또한 MySQL 8버전에 대한 연동테스트를 진행하며 같이 진행해본다

 

MySQL 5.7버전 역시 docker를 이용한다

hub.docker.com/_/mysql

 

docker로 mysql 5.7버전을 사용하기 위해 아래의 명령어를 사용한다

docker run --name airflow_mysql -e MYSQL_ROOT_PASSWORD=airflowpw -e MYSQL_DATABASE=airflow -p 3306:3306 mysql:5.7

MYSQL_ROOT_PASSWORD는 원하는 대로 설정하면 되고

MYSQL_DATABASE는 airflow와 연결할 DB명을 설정하여 띄운다

docker desktop을 사용하는 경우 위와 같이 확인할 수 있다

설정 내용이 제대로 동작했는지 확인해보자

MySQL Workbench를 이용해 확인한다

new Connection을 만들고 user에 대한 설정을 하지 않아 root 계정을 이용해 test connection을 진행하면 위와 같이 잘 연결된 것을 확인할 수 있다

Host는 127.0.0.1(localhost)인데 docker을 이용해 다른 설정을 하지 않은 경우 해당 localhost로 접근하게 된다

해당 DB로 연결을 해보면 airflow 라는 DB가 생성되어 있는 것을 확인할 수 있다

docker을 올릴 때 MYSQL_DATABASE를 사용하여 airflow를 설정했기 때문에 미리 생성되어 있다

이제 airflow container에서 MySQL 연결 설정을 진행해보자

 

먼저 연결을 위해 mysqlclient를 설치를 진행한다

pip install mysqlclient

 

설치가 완료된 이후 airflow에서 연결하는 DB 변경을 위해 airflow.cfg 파일을 수정한다

기본값으로는 sqlite:////root/airflow/airflow.db로 설정되어 있는데 이 부분을 아래의 내용으로 수정한다

형식은 아래와 같으며 내가 설정한 내용은 아래 이미지와 같다

sql_alchemy_conn = mysql://[ID]:[PW]@[IP]:[PORT]/[DB]

이제 전에 설정한 것과 같이 db init, user create를 순서대로 진행한다

그런데 이때 에러가 발생했다

mysql 설정떄문에 발생한 에러인데 설정값에 해당 내용을 추가해주면 된다

 

mysql을 띄운 docker로 가서 설정값을 변경한다

설정을 변경할 파일은 아래와 같다

/etc/mysql/mysql.conf.d/mysqld.cnf

설정을 변경하기 위해 vi, vim 명령어를 사용한다면 해당 패키지가 설치되어 있지 않아 설치가 필요하다

apt-get update
apt-get install vim

vim이 설치된 이후 파일 내용을 수정한다

explicit_defaults_for_timestamp=1

설정을 변경한 이후 내용 적용을 위해 mysql 재시작을 진행한다

service mysql restart

해당 명령어를 실행하면 container가 종료되기 때문에 해당 컨테이너를 재시작 시켜줘야한다

설정을 정상적으로 적용시킨 후 airflow db init를 실행시키면 아래와 같이 정상적으로 실행이 완료된다

 

이제 이전 글에서 했던 것과 같이 airflow user를 생성하고

airflow를 실행시켜보자

이후 정상적으로 접근이 되는 것을 확인하고 로그인이 완료되면 airflow와 mysql간의 연동이 끝이 난다

 

다음에는 오늘 설정된 airflow에 scheduler을 실행시키고 DAG를 작성해 동작시켜보도록 하자

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

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

Airflow HiveServer2Hook LDAP 연결  (0) 2021.04.23
Airflow2.x providers 설치하기  (0) 2021.04.03
Airflow 2.0 설치하기(2)  (0) 2021.01.29
Airflow 2.0 설치하기(1)  (0) 2021.01.27
Ambari-Airflow 연동하기  (0) 2020.12.22
Comments