Apache Airflow Installation

Page content

강의 홍보

개요

  • NiFi와 같은 용도의 소프트웨어이며, 현재 가장 인기 있는 오픈소스 데이터 파이프라인 도구라고 할 수 있다.
  • 보통은 시스템에 경로를 설정한다. 그런데, 본 장에서는 가상환경 설정 후 진행하는 것으로 했다.
  • 가상 환경은 virtualenv 를 통해서 진행한다.
  • 그 후에 가상 환경에 접속한다.
$ source venv/bin/activate
(venv) $

Step 01. 환경변수 설정

  • 우선 pip 으로 설치 하기에 앞서서 환경 변수를 임시로 설정한다.
  • 해당 환경 변수가 설정된 곳으로 airflow 설치 관련 폴더 및 파일들이 다운로드 될 것이다.
(venv) $ export AIRFLOW_HOME="$(pwd)"
(venv) $ echo $AIRFLOW_HOME
/Users/evan/Desktop/data_engineering_python/install_files/airflow

Step 02. 라이브러리 설치

  • 이제 airflow 설치를 진행한다.
  • 이때, 설치 명령어에 따른 옵션은 아래 그림에서 살펴보기를 바란다.

airflow_01.png

  • 본 장에서는 PostgreSQL, Slack, Celery 라이브러리를 설치한다.
(venv) $ pip3 install 'apache-airflow[postgres, slack, celery]'
Collecting apache-airflow[celery,postgres,slack]
.
.
my-utils-0.37.8 swagger-ui-bundle-0.0.8 tabulate-0.8.9 tenacity-6.2.0 termcolor-1.1.0 text-unidecode-1.3 tornado-6.1 unicodecsv-0.14.1 urllib3-1.26.6 vine-1.3.0 werkzeug-1.0.1 zipp-3.5.0
WARNING: You are using pip version 21.1.3; however, version 21.2.4 is available.
You should consider upgrading via the '/Users/evan/Desktop/data_engineering_python/venv/bin/python -m pip install --upgrade pip' command.
(venv) $
  • 설치된 버전을 확인한다.
(venv) $ airflow version
2.1.3

Step 03. Airflow DB 초기화

  • Airflow 실행 전, DB초기화를 진행한다.
(venv) $ airflow db init
DB: sqlite:////Users/evan/Desktop/data_engineering_python/airflow.db
.
.
Initialization done
(venv) $ ls
airflow.cfg             airflow.db              logs                    webserver_config.py

Step 04. Airflow Web Server

  • Apache NiFi 기본 포트도 8080이지만, Airflow도 마찬가지로 기본 포트는 8080이다.
  • 만약 동시에 실행을 시켜야 한다면 NiFi 포트 또는 Airflow의 포트를 변경해야 한다.
(venv) $ airflow webserver # or airflow webserver -p 8081
(venv) $ 
  • 이렇게 실행하면 Login 창이 나올 것이다.

airflow_02.png

  • 이 화면이 나온다면 airflow user create를 실행해본다.
  • 옵션을 확인하였다면 이제 사용자를 생성한다.
  • 그리고, ID와 PW를 입력 후 접속 한다.
(venv) $ airflow users create
.
.
To create an user with "Admin" role and username equals to "admin", run:
$ airflow users create \
          --username admin \
          --firstname FIRST_NAME \
          --lastname LAST_NAME \
          --role Admin \
          --email admin@example.org
.
.
.
(venv) $ airflow users create --username evan --password evan --firstname evan --lastname Jung --role Admin --email admin@example.org
[2021-09-06 22:01:01,014] {manager.py:788} WARNING - No user yet created, use flask fab command to do it.
Admin user evan created
(venv) $ airflow webserver -p 8081

airflow_03.png

  • 각각의 예제들은 한번씩 실행하면 되지만, 추후에 파이썬 코드로 실제로 작성할 것이기 때문에 크게 신경쓰지 않는다.
  • 만약에 위 예제들을 처음부터 안 보이게 하고 싶다면, airflow.cfg 파일을 아래와 같이 조금만 수정하도록 한다. load_eaxmples = True —> load_examples = False
# load_examples = True
load_examples = False
  • 그러나, airflow.cfg 파일은 즉시 실행되지 않기 때문에 airflow db reset 후 다시 웹서버를 실행한다.
  • 예제들이 모두 사라진 새로운 화면을 보게 될 것이다.

airflow_04.png

References