본문 바로가기

Data Engineering/Cloud

[AWS/Airflow] EC2에 Airflow 설치하기

사이드 프로젝트를 위해서 ec2에 mysql,kafka,airflow를 설치했다.

airflow 설치하는 방법에 대해 기록하려고 한다.

python3 를 통해 가상환경 생성

해당 작업만의 패키지를 설치하기 위해 가상환경을 생성하는 작업을 먼저 진행한다.

# 가상환경 생성
$ python3 -m venv venv-test-airflow

# 가상환경 실행
$ source venv-test-airflow/bin/activate

Airflow 설치

$ pip install apache-airflow

SQLite 초기화

airflow의 db는 기본으로 sqlite를 쓰고 있으며, db를 초기화 한다

$ airflow db init

유저 계정 생성

# 계정 생성 명령어 (\\ 앞에 띄어쓰기 있어야함)
$ airflow users create \\
> --username admin \\
> --firstname {your} \\
> --lastname {name} \\
> --role Admin \\              # 해당 부분은 고정
> --password {pwd} \\
> --email {email}

Webserver On

# 가상환경 활성화
source venv-test-airflow/bin/activate
airflow webserver

Airflow scheduler

webserver를 띄운 후, 해당 터미널 외에 다른 터미널로 스케줄러를 실행한다

# 새로운 터미널 연 다음
source venv-test-airflow/bin/activate
airflow scheduler

계정조회

airflow users list

Webserver kill

kill -9 $(lsof -t -i:8080)
killall -9 airflow 
# airflow 관련된 PID 모두 삭제

모든 이슈들이 해결된 모습

8080포트로 들어가보면 수많은 dags가 존재할 것이다. 이는 example dags이며, 이를 보고싶지 않을때 

airflow/airflow.cfg파일을 vi로 열어 load_examples 부분을 True 에서 False로 변경후 다시 스케줄러를 실행시키면 아까 보였던 Dags들이 보이지 않을것이다.

schedule_interval

once 1회만 실행하도록 스케줄
hourly 매시간 변경 시 1회 실행
daily 매일 자정에 1회 실행
weekly 매주 일요일 자정에 1회 실행
monthly 매월 1일 자정에 1회 실행
yearly 매년 1월 1일 자정에 1회 실행

Tree 구조

디렉토리 및 파일을 구조적으로 확인하고 싶어 tree 명령어를 실행시켰다.

tree {option} {file_name}
옵션 내용
-d 디렉토리만 표시할 경우 사용되는 옵션 입니다.
-f 파일 전체 경로를 표시할 경우 사용되는 옵션 입니다.

sudo apt-get install tree

tree -L 2
# 트리를 최대 2단계 깊이까지만 보겠다는 명령어

반응형