[ 개요 ]
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