본문 바로가기
Database

[Airflow] Airflow 설치 및 DAG 생성하기

by BTC_루피 2023. 6. 7.

베하 !

문땅훈과 루피입니다!!

오늘은 Airflow 실습을 해보겠습니다.

설치 및 DAG 생성까지 해보도록 하겠습니다.

 


개요

  • Airflow pip로 실행
  • Airflow Docker image 생성 후 실행

 

Airflow 실행 및 접속을 위해서 총 2가지 방법으로 생성해보겠습니다. 😊

 


1. pip 로 실행하기

1. Ubuntu & pip3 업데이트

sudo apt update && sudo apt upgrade

sudo apt-get install software-properties-common
sudo apt-add-repository universe
sudo apt-get updat e && sudo apt-get install python3-pip

 

2. Airflow Install

Airflow를 설치할 디렉토리 생성 및 Airflow 설치

# 관리에 용이하게 Airflow를 설치할 디렉토리 생성
mkdir af

# airflow 설치 명령어
pip3 install apache-airflow

 

3. wsl.conf 파일 수정

  • wsl.conf 파일이란?
    • WSL의 동작 방식, 리눅스 배포판의 설정 및 통합을 구성하는 설정 파일
    • WSL 배포판의 루트 파일 시스템에 위치하며, 일반적으로 /etc/wsl.conf 에 위치
sudo nano /etc/wsl.conf

# wsl.conf 파일에 하기의 내용 입력
[automount] 
 root = / 
 options = "metadata"

 

4. 프로젝트 경로 설정

  • 현재 디렉토리 경로를 Airflow 경로로 설정하기 위해 nano ~/.bashrc 에 AIRFLOW_HOME 환경 변수를 설정해줍니다.
  • 설정을 완료한 뒤에 Terminal 재접속
export AIRFLOW_HOME=/home/[Users]/[생성한 디렉토리명]

 

5. Airflow 설치 확인

  • 설치가 정상적으로 되었다면 아래와 같이 나타납니다!
  • sql_alchemy_conn을 봤을 때 경로가 제대로 설정된거 보이시죠 ? 해당 경로는 airflow.cfg에서도 확인 가능합니다.
airflow info

 

6. Airflow DB 초기화

  • airflow.db와 webserver_config.py 파일 생성
airflow db init

 

7. Airflow 실행 및 로그인 시 필요한 계정 추가

Airflow 웹 서버 실행

airflow webserver -p 8080

web 접속 화면

  • 로그인 시 필요한 Admin 정보 계정 추가
airflow users create \
--username admin \
--firstname moon \
--lastname thanghoon \
--role Admin \
--password admin1234 \
--email silverbin0523@gmail.com

 

위 작업을 완료해주고 접속하면 됩니다.😊


TroubleShooting

  • 경로 문제 Error 발생 시
    • 만약 아래와 같은 에러가 뜬다면 경로 설정을 잘못하여 DB 연결이 안되는 에러입니다.
    • 이때, airflow info 해서 경로를 확인하고 절대경로로 경로를 맞춰주세요 !

 


 

2. Docker image 생성 후 실행하기

  • 먼저, WSL 환경에서 Docker 설치합니다.

 

1. 업데이트해주기

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

2. 이전 버전 제거

sudo apt-get remove docker docker-engine docker.io containerd runc

 

3. 키 추가

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

 

4. 리포지토리 설정

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

5. 도커 엔진 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

5-1 ) Package 'docker-ce' has no installation candidate error 발생 시 아래 진행

$ sudo apt-get update
$ sudo apt-get install \
   ca-certificates \
   curl \
   gnupg \
   lsb-release
   
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

 

6. 설치 확인

sudo docker run hello-worldsudo

 

7. 파이썬 컨테이너 내에서 명령어 실행하기

sudo docker python:3.8 python -c 'import sys; print(sys.version)'

 

  • Airflow 실행하기

1. apt update & pip 설치 해주기

sudo apt update && sudo apt install python3-pip

 

2. yaml download

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.3/docker-compose.yaml'

3. env 환경 변수 설정하기

mkdir ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env

 

4. docker composer 실행

docker compose up

 

이후, localhost:8080으로 접속하면 airflow webpage가 뜹니다.

 

 

 

이렇게 2가지 방법으로 airflow webpage에 접속해보았는데요

쉽게 잘 따라하셨나요!?

 

다음엔 Composer에 대해서 배워보겠습니다.

그럼 베빠 !!

😊😊

 

 


<참고자료>

Window에서 Airflow 설치해보기

[Airflow] Apache Airflow 설치하기

Airflow 소개 및 환경 설정

https://docs.docker.com/engine/install/ubuntu/

 

 

 

댓글