Data engineering/Airflow
Airflow 설치 - GCP (실습)
amelia-suyeon
2023. 5. 1. 20:46
Airflow의 같은 경우, window에서는 설치 및 실행이 불가한 점!
맥북의 경우 Local에서 가능하나, window 는 WSL을 따로 설치 한 후, 사용 가능!
저 같은 경우는 테스트 용도로 GCP 서버를 사용하고 있습니당
GCP에서는 Linux 기반의 debian 이며, 저의 계정으로 바로 설치를 시작했습니당
[실습]
1. 서버 접속
2. sychung(제 계정) 아래 airflow라는 폴더를 하나 만든다.
3. 가상 환경 설치 및 실행 하기
--> 저 같은 경우 가상환경은 pip install virtualenv를 사용합니다.
그리고 virtualenv .venv 로 하면 -> 실행했을때 (.venv)로 구별 가능
4. pip install apache-airflow 입력 (이때, 버전을 고정하고 싶은 경우, airflow 공식 홈페이지에 들어가서 버전을 고정시켜 줄것 - 공식 홈페이지 https://airflow.apache.org/docs/apache-airflow/stable/start.html)
5. 명령어 창에 airflow라고 쳤을때, airflow 라고 반응한다면 잘 설치가 된 것!
★ 아래와 같이 설치 후에 볼 수 있는 것들!
- airflow.cfg : airflow 설정 파일 / airflow DAG 경로, 로그 수준 등 실행에 필요한 정보를 저장함
- airflow.db : SQLite DB file로 어떤 DAG가 존재하고, 어떤 태스크로 구성되는지? 어떤 태스크가 실행 중이고, 그 중 실행 가능한 상태인지 등의 메타 데이터가 저장되는 데이터베이스 파일
- logs : airflow의 로그 디렉터리 / 웹 서버나 스케줄러를 백그라운드로 실행했을 때는 airflow 홈 디렉터리에 바로 로그가 쌓임 (수정 필요하면 폴더 하나 만들어서 경로 변경 해줄것)
- webserver_config.py : 웹 서버 설정을 위한 config 파일
- standalone_admin_password: standalone 명령어로 airflow를 실행 한 경우, admin 계정의 비밀번호가 저장된 파일
- dag : 하나의 작업 단위를 task라 부르는데, 여러 개의 task 가 합쳐져 dag를 구성한다.→ PythonOperator와 Bash를 실행할 수 있는 BashOperator 등등 여러 Operator 존재.
- → task 간에는 << , >> 기호를 사용하여 순서를 지정하는 것이 가능
원래 dags는 설치 바로 직후에는 존재하지 않지만, 새로 폴더를 생성 후 안에 여러가지를 넣어주면 된다!
6. Airflow의 관리자 계정을 만들어준다
airflow users create -u admin -p admin -f sy -l chung -r Admin -e admin@admin.com
다들 계정을 만드실 때, 아시겠지만 아래의 표와 같아요! Admin 같은 경우는 꼭 A를 대문자로 해야 role로 받아들여집니다!
표기법 |
-u (user) |
-p (password) |
-f (firstname) |
-l (lastname) |
-r (role) |
-e (email) |
7. 그렇다면 이제 웹서버와 스케줄러를 가동시켜서 서버에 띄어보자'
커맨드라인에 airflow webserver -p 8080
(디폴트는 8080 이라 쓰지 않아도 되지만, 다른 포트를 열 경우에는 기입해줄것)
위와 같이 나오면 성공!
위를 켜둔 상태로 다른 터미널을 하나 더 켜주고,
airflow scheduler
스케줄러를 실행시켜준다.
그리고 나서 localhost:8080 으로 로컬에 접속하면, airflow 홈페이지가 보일 것이다!
만약 보이지 않는다면 -> 서버의 방화벽 문제일 가능성이 높음!