반응형
Docker 이용하여 mysql, redis 컨테이너 올리기
$ mkdir /usr/local/db_data
$ mkdir /usr/local/redis_data
$ docker pull mysql:8.0
$ sudo docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=test --volume /usr/local/db_data/:/var/lib/mysql --name mysql_bi mysql:8 --default-authentication-plugin=mysql_native_password
$ docker pull redis:5.0
$ sudo docker run -d --name redis_bi -p 6379:6379 --volume /usr/local/redis_data/:/data -e REDIS_PASSWORD=airflow redis:5.0
$ sudo docker ps
virtualenv 설치 및 가상 환경 만들기
# Python 을 이용하여 virtualenv 설치
$ python3 -m pip install virtualenv virtualenvwrapper --user
# 가상 환경 만들기
$ mkdir myenv
$ virtualenv --python=python3.5 myenv
#아래 명령어로도 가능하다
$ virtualenv -p `which python3` venv
# 가상환경 진입
$ source myenv/bin/activate
#가상환경 빠져 나오기
$ deactivate
airflow 설치 및 서버 동작 스크립트
$ source myenv/bin/activate
$ pip install --upgrade pip
$ pip install pymysql
# airflow
pip install apache-airflow[mysql,redis,celery]==1.10.7
# 에어플로우 홈 설정
$ mkdir myenv/airflow_home
$ export AIRFLOW_HOME=`pwd`/airflow_home # virtualenv 바깥에서도 동일하게 설정
# 에어플로우 데이터베이스 초기화
$ airflow initdb
$ airflow resetdb #load_examples False 가 적용이 안될때 다시 db 리셋
# 웹서버 구동
$ airflow webserver -p 5000
$ airflow scheduler
$ airflow worker
$ airflow flower
airflow.cfg 설정 파일 수정
$ vi airflow.cfg
dags_folder = /home/deploy/work/airflow/dags
# The folder where airflow should store its log files
# This path must be absolute
base_log_folder = /home/deploy/work/airflow/logs
# executor = SequentialExecutor
executor = CeleryExecutor
# sql_alchemy_conn = sqlite:////home/airflow/airflow/airflow.db
sql_alchemy_conn = mysql+pymysql://airflow:airflow@127.0.0.1:3306/airflow
# catchup_by_default = True
catchup_by_default = False
# broker_url = sqla+mysql://airflow:airflow@127.0.0.1:3306/airflow
broker_url = redis://airflow@127.0.0.1:6379/0
# result_backend = db+mysql://airflow:airflow@localhost:3306/airflow
result_backend = db+mysql://airflow:airflow@127.0.0.1:3306/airflow
# load_examples = True
load_examples = False
airflow 자주 쓰는 커맨드
# print the list of active DAGs
airflow list_dags
# prints the list of tasks the "tutorial" dag_id
airflow list_tasks jayden_tutorial
# prints the hierarchy of tasks in the tutorial DAG
airflow list_tasks jayden_tutorial --tree
# command layout: command subcommand dag_id task_id date
$ airflow test jayden_tutorial print_date 2020-03-02
다음에는 Hive Operator 연동을 올리겠다. :D
반응형
'Data Engineer' 카테고리의 다른 글
[airflow] HA - health 체크를 이용한 운영 (0) | 2021.06.05 |
---|---|
Elasticsearch (ES) 기초 (1) - CRUD (0) | 2021.06.03 |
Apache Spark 기초 (2) (0) | 2021.06.02 |
[hive] pyhive, ph2 라이브러리를 이용하여 python hive 연동 (0) | 2021.06.02 |
Apache Spark 기초 (1) (0) | 2018.10.27 |