2021년 6월 14일 월요일

[ Airflow ] Centos7 설치


[ 개요 ]

airflow 모듈

  • airflow webserver: 웹UI를 통해 workflow를 컨트롤 하기 위함
  • airflow scheduler: DAG 파일을 통록된 workflow를 지정된 시간에 동작시키는 역할
  • airflow worker: scheduler에 의해 할당된 workflow를 실제로 동작시킴
  • airflow kerberos(옵션) : 만약 kerberos 인증된 데이터소스(ex- 하둡)에 접근할때 커버로스 인증티켓을 주기적으로 갱신하기 위함




[ 사전설치 ]

## 파이썬 3.6 설치 및 virtualenv 설치

$ sudo yum install -y python3 python3-devel

$ sudo pip3 intall virtualenv


##추가 필요 모듈 설치

$ sudo yum install -y gcc gcc-c++ cyrus-sasl-devel mysql-devel


## https://github.com/inishchith/autoenv

## virtualenv를 편하게 사용하기 위해 autoenv 설치

## virtualenv를 활성화 하려면 매번 해당 디렉토리에 들어가서 source ./bin/activate 를 실행해줘야 한다.

## autoenv는 디렉토리 이동시 .env 파일의 유무를 확인한후 .env를 실행한다.

## 따라서 .env 파일을 만들고 virtualenv activate를 써주면 매번 activate를 해줄필요 없이 자동으로 처리된다.

$ sudo pip3 install autoenv

$ echo "source `which activate.sh`" >> ~/.bash_profile

$ source ~/.bash_profile



[ Airflow 설치 ]

$ mkdir ${airflow 설치 디렉토리}


## airflow_home 환경변수 지정, 지정된 위치에 airflow가 설치되게 된다.

$ echo 'export AIRFLOW_HOME=${airflow 설치 디렉토리}' >> ~/.bash_profile

$ source ~/.bash_profile


$ cd ${airflow 설치 디렉토리}


## 가상 환경 설치

$ virtualenv -p python3 venv

$ echo 'source $AIRFLOW_HOME/venv/bin/activate' >> .env

## airflow_home 디렉토리로 다시 접근하면 autoenv에 의해 .env가 읽히고 윗줄의 source 설정이 읽힌다.

## 아래와 같이 나와야 autoenv 설정이 제대로 된것이다.

$ cd $AIRFLOW_HOME

autoenv:

autoenv: WARNING:

autoenv: This is the first time you are about to source /${AIRFLOW_HOME}/.env:

autoenv:

autoenv:     --- (begin contents) ---------------------------------------

autoenv:     source ./venv/bin/activate

autoenv:

autoenv:     --- (end contents) -----------------------------------------

autoenv:

autoenv: Are you sure you want to allow this? (y/N) y


$ pip3 install apache-airflow==1.10.5


## initdb를 하면 초기 설정파일이 airflow_home에 생성된다.

$ airflow initdb

## dag가 저장될 디렉토리 생성

$ mkdir dags

$ ls -ah

.env  airflow.cfg  airflow.db    dags  logs  unittests.cfg  venv 


[ Airflow DB ]

DB컨트롤 툴인 DBeaver에서 SQLite를 선택하고 

Path를 airflow.db로 잡는다.


연결완료화면

















참조 : 

https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html

https://louisdev.tistory.com/3



댓글 없음:

댓글 쓰기