[부스트캠프 AI-Tech] 20주차 Day 2

LKM·2022년 7월 25일
0

✏️학습 정리


4-2. Airflow

  • Batch Process

    • 예약된 시간에 실행되는 프로세스 (1회성도 가능하고 주기적 실행도 가능)
    • 필요한 이유
      • 모델을 주기적으로 학습시켜야 하는 경우 (Continuous Training)
      • Batch Serving이 필요한 경우
    • 기존 방법
      • Linux Crontab
      • 크론 표현식 사용
        • Batch Process의 스케줄링을 정의한 표현식
        • 참고
      • 문제점
        • 재실행 및 알람
          • 파일을 실행하다 오류가 발생한 경우, 크론탭이 별도의 처리를 하지 않음
        • 과거 실행 이력 및 실행 로그를 보기 힘들다.
        • 복잡한 파이프라인을 만들기 어렵다.
  • Airflow

    • 현재 스케줄링, 워크플로우 도구의 표준

    • 스케줄링 도구로 무거울 수 있지만, 거의 모든 기능을 제공하고, 확장성이 넓어 일반적으로 스케줄링과 파이프라인 작성 도구로 많이 사용

    • 기능

      • 파이썬을 사용해 스케줄링 및 파이프라인 작성
      • 스케줄링 및 파이프라인을 볼 수 있는 웹 UI 제공
      • 실패 시 알람, 실패 시 재실행 시도, 동시 실행 워커 수, 설정 및 변수 값 분리
    • 실행 Flow

      • Airflow 설치
      • Airflow 기본 디렉토리 설정
      • Airflow DB 초기화
      • Airflow 어드민 계정 생성
      • Airflow 웹서버 실행
      • Airflow 스케줄러 실행
    • DAG & Task

      • Airflow는 DAG이라는 단위로 스케줄링 관리
      • DAG: 1개의 파이프라인
      • Task: DAG 내에서 실행할 작업
    • 유용한 Operator

      • PythonOperator
        • 파이썬 함수를 실행
        • 실행할 파이썬 로직을 함수로 생성한 후, PythonOperator로 실행
      • BashOperator
        • Bash 커맨드를 실행
        • shell 스크립트, scala 파일 등 실행 가능
      • DummyOperator
        • 아무것도 실행하지 않음
        • DAG내에서 Task를 구성할 때, 여러 개의 Task의 SUCCESS를 기다려야 하는 복잡한 Task 구성에서 사용
      • SimpleHttpOperator
        • 특정 호스트로 HTTP 요청을 보내고 Response를 반환
        • 파이썬 함수에서 requests 모듈을 사용한 뒤 PythonOperator를 사용해도 무방
      • 그 외
        • BranchOperator, DockerOperator, KubernetesOperator, CustomOperator 등…
  • Apache Airflow Architecture

    • 기본 아키텍처 형태

      • DAG Directory
        • DAG 파일들 저장
      • Scheduler
        • 각종 메타 정보의 기록을 담당
      • Executor
        • 스케줄링된 DAG를 실행하는 객체
        • Local
          • Local Executor
            • 하나의 DAG Run을 하나의 프로세스로 띄워서 실행
          • Sequential Executor
            • 하나의 프로세스에서 모든 DAG Run들을 처리
        • Remote
          • Celery Executor
            • DAG Run을 Celery Worker Process로 실행
          • Kubernetes Executor
            • 쿠버네티스 상에서 Airflow를 운영할 때 사용
        • 그 외 Executor
      • Workers
        • DAG을 실제로 실행
        • Scheduler에 의해 생기고 실행
        • Executor에 따라 워커의 형태가 다름
      • Metadata Database
        • 메타 정보를 저장
        • Scheduler에 의해 Metadata가 쌓임
      • Webserver
        • WEB UI를 담당
        • Metadat DB와 통신하며 유저에게 필요한 메타 데이터를 웹 브라우저에 보여주고 시각화
profile
함께 자라기

0개의 댓글