ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Airflow 설치 - GCP (실습)
    Data engineering/Airflow 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 홈페이지가 보일 것이다!

     

    만약 보이지 않는다면 -> 서버의 방화벽 문제일 가능성이 높음! 

     

    GCP의 경우, 방화벽 규칙에들어가서 현재 ip 주소를 등록해주는 것이 보안에도 좋을 것이다! 

Designed by Tistory.