인프런 커뮤니티 질문&답변

Lim님의 프로필 이미지

작성한 질문수

Airflow 마스터 클래스

Bash operator DAG 만들기 & DAG 디렉토리 셋팅

도커를 사용하지 않는 방법

24.06.12 10:22 작성

·

153

0

안녕하세요

HPC를 사용하고 있는데 도커가 사용 불가능한 HPC라 우선은 구글링하여 airflow를 설치하고 강의를 듣고 있습니다. 아직 1강인데, 혹시 차후에 도커가 없어서 강의를 못따라가는 상황이 생길까요? 수강신청전에 미리 확인해봤어야 했는데 죄송합니다 ㅜㅜ!

답변 1

0

김현진님의 프로필 이미지
김현진
지식공유자

2024. 06. 12. 22:12

안녕하세요 Lim님

HPC가 가정집에 있지는 않으실테고 .. 회사에서 들으시는건가요? ^^

혹시 HPC OS 버전을 알 수 있을까요? 그리고 airflow 어떻게 설치하셨는지도 답글 부탁드립니다.

컨테이너를 사용하지 않으면 수업 진행에 걸리는 부분이 좀 있습니다.

 

(1) 만약 airflow를 pip install airflow 와 같은 방식으로 설치했다면 DB는 SQLite 로 설치되고 Executor는 Sequential Executor로 셋팅이 됩니다. (컨테이너로 설치했을 때는 Celery Executor로 셋팅됨)

Sequential Executor는 task가 한번에 하나씩밖에 수행이 안되는 단점이 있어요. 그래서 pip install 방식으로 설치하면서 Celery Executor 환경을 따라가려면 Redis 큐와 worker 등을 별도로 구성해줘야 합니다.

 

결과적으로 Lim 님이 설치한 airflow 환경이 일부 강의 내용을 소화하는데 어려울 수 있습니다.

(강의 내용 중 여러 Task를 동시에 수행해야 하는 부분이 종종 있습니다)

 

(2) 강의 내용 중 Airflow Provider 패키지 설치를 위해 도커 컨테이너 빌드하고 라이브러리 설치하는 과정들이 있습니다. Lim님은 컨테이너를 쓰지 않기 때문에 Lim 님의 환경에 맞게 이해하셔야 할 것 같습니다. 해당 부분 진행하시다가 막히면 제가 최대한 도와드리겠습니다.

 

결과적으로.. 여러모로 어려움이 좀 예상되는데 AWS 나 윈도우 PC 에 WSL 구성이 어려운가요?

AWS에 Ubuntu (t3.large) 띄우시면 실습하는데 어려움은 없습니다.

일단 위에 질문드린 HPC OS, airflow 설치한 방법 확인 부탁드립니다.

Lim님의 프로필 이미지
Lim
질문자

2024. 06. 13. 09:24

안녕하세요 답변 감사드립니다.

네 회사에서 Airflow 환경을 구축하려고 하여 로컬컴이 아닌 HPC에서 실습을 수행하려 합니다. airflow 는 말씀해주신 pip install 로 설치를했고 HPC는 Red hat 8.3 사용중입니다. 로컬컴 윈도우와 터널링을 하여 local host를 열어서 스케줄러 확인하고 있습니다. 현재 섹션2 수강중이고 선생님께서 다뤄주신 example dag들은 잘 돌아갑니다. 컨테이너에 관련해서는 언제부터 문제가 생길까요? 그 부분은 아직 제가 이해하지 못한 것 같습니다.

 

김현진님의 프로필 이미지
김현진
지식공유자

2024. 06. 13. 10:57

음 컨테이너에 Provider 라이브러리 설치하는 부분은 아래 챕터에서 다룹니다.

 

섹션 8 - 더 많은 Provider 확인 & Connection Type 추가하기

그리고 이 부분 진행시 문제가 생긴다기보다 도커 이미지 빌드 부분 실습이어서 Lim은 Lim 님의 환경에 맞게 변형해서 따라오셔야 한다는 의미입니다. 이 부분까지 따라오신 후 잘 안되시면 질문 남겨주세요 ^^

 

그리고 지금 airflow 웹 화면 보시면 상단에 SQLite DB사용중이라는 warining 메시지와 Sequantial Executor를 쓰고있다는 warning 메시지가 뜨고있지 않나요?

 

Lim님의 프로필 이미지
Lim
질문자

2024. 06. 14. 13:23

안녕하세요, 답변 감사드립니다! 해당 에러를 해결하기 위해 mySQL을 사용하고자 HPC에 mySQL 다운을 받았습니다. initialize 하고 , 비밀번호 설정을 하고

bin에 가서 mySQL을 실행하니 (./bin/mysql --host=localhost --socket="home/mysql/mysql.sock" -u root 비밀번호) mysql> 으로 떴습니다. (연결 된것이라고 판단하였습니다) airflow와 mySQL은 어떻게 연결할 수 있는지 조언 주시면 정말 감사하겠습니다! (airflow.cfg에 LocalExecutor라고 해놓으면 자동으로 연결이 되는건지, 혹은 매번 HPC를 로그인 할때마다 mySQL에 로그인을 해야하는건지, 더 나아가, HPC에서 mysql> 로그인이 되면 airflow에서 자동으로 mysql 을 읽을 수 있는건지 궁금합니다. 감사합니다!

김현진님의 프로필 이미지
김현진
지식공유자

2024. 06. 19. 18:00

안녕하세요 Lim님

답변이 늦었네요. mysql 을 사용하건 postgres를 사용하건 LocalExecutor라고 알아서 연결하진 않을거에요. 파라미터 중 DB 연결을 위한 파라미터가 있어요 (AIRFLOW__DATABASE__SQL_ALCHEMY_CONN)

mysql 사용하신다면 제가 한번 테스트해보고 결과 공유드릴께요. (시간이 좀 걸릴수도 있습니다 ^^)

김현진님의 프로필 이미지
김현진
지식공유자

2024. 06. 20. 16:05

Lim님

Redhat에서 테스트는 못해봤고 Ubuntu에서 테스트해봤는데

컨테이너 없이 Celery Executor로 구동하는 절차 추가했습니다. (mysql DB사용)

LocalExecutor보다는 Celery Executor 로 실습하는게 좋을 듯 합니다.

 

참고로 Celery Executor는 큐 서비스가 필요하고 (보통 Redis 사용) Redhat에서도 redis 설치는 가능할거에요.

아래 링크에 설치 절차 넣어놨습니다. 한번 확인해보세요.

Redhat OS Lib 설치가 좀 필요할 수 있습니다.

https://github.com/hjkim-sun/airflow/wiki/Docker-%EC%84%A4%EC%B9%98%EA%B0%80-%EB%B6%88%EA%B0%80%EB%8A%A5%ED%95%A0-%EA%B2%BD%EC%9A%B0

 

Lim님의 프로필 이미지

작성한 질문수

질문하기