데이터 엔지니어링/AWS
[AWS] EC2에 Airflow 설치하는 방법
데이터길드장
2024. 1. 15. 10:24
사이드 프로젝트를 위해서 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단계 깊이까지만 보겠다는 명령어
반응형