개발 및 분석 용도로 구성한 스크립트들을 스케줄링하여 주기적으로 실행되고 운영이 될 수 있는 환경을 Docker Container 내에서 할 수 있도록 만들어 보자.
# 1. python을 사용하기 위한 jupyter docker container 실행
docker run -it -p 34888:8888 -p 34222:22 -p 34787:8787 -p 34080:8080 \
-v mount_vol:/mypath/mount_vol/
--name dtstory -e ROOT=TRUE -e PASSWORD=password tensorflow/tensorflow:latest-jupyter
참고로 해당 컨테이너 리눅스 배포판은 다음과 같다.
배포판 : Ubuntu 20.04.5 LTS \n \l
-> ip:34888 에 접속하여 주피터 노트북 실행이 되는지 확인한다.
# 2. R (version 4.x) , RStudio 설치
# (ubuntu20 - R 4.x) 설치 레퍼런스 -> https://www.digitalocean.com/community/tutorials/how-to-install-r-on-ubuntu-20-04-quickstart
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
apt-get install software-properties-common -y
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
apt update -y
apt install r-base
apt update -y
apt upgrade -y
apt install gdebi-core -y
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2021.09.1-372-amd64.deb
gdebi rstudio-server-2021.09.1-372-amd64.deb
-> 사용자를 등록하고, 비밀번호를 설정한 후에, ip:34787 로 접속하여 Rstudio 실행 및 로그인이 되는지 확인한다.
adduser dtstory
# 3. Airflow 설치
설치 레퍼런스 -> https://yamerong.tistory.com/59
# 가상환경 라이브러리인 virtualenv 라이브러리 생성
pip install virtualenv
cd ~/
virtualenv airflowenv
source ~/airflowenv/bin/activate
pip install psycopg2-binary
echo 'export AIRFLOW_HOME=~/airflow' >> ~/.bash_profile
source ~/.bash_profile
AIRFLOW_VERSION=2.2.3
PYTHON_VERSION="$(python --version | cut -d " " -f 2 | cut -d "." -f 1-2)"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
# airflow 초기화를 진행 -> 실행하면 임시 비밀번호가 발급된다. (계정명 : admin)
airflow standalone
# airflow user 추가 등록하기
airflow users create \
--username dtstory \
--firstname dtstory \
--lastname dtstory \
--role Admin \
--email dtstory@email.com
# airflow 이미 실행중 error가 뜨는 경우, 아래와 같이 process를 kill 해주고, reset을 진행한다.
apt install lsof
lsof -i tcp:8080
lsof -i tcp:8080 | grep 'root' | awk '{print $2}' | xargs kill -9
airflow db reset
-> ip:34080 에 접속하여 Airflow가 실행이 되는지 확인한다.
# 4. ssh (file zilla) 설치
https://dtstory.tistory.com/11
Container는 이미 실행하였기 때문에, 실행부를 제외하고 위의 링크를 참조하여 명령을 실행해보자.
728x90
'Data Engineering(Pipeline, Hadoop...) > Airflow' 카테고리의 다른 글
[Airflow] 워크플로우 - R Script 실행 (0) | 2023.01.02 |
---|---|
[Airflow] Schedule Timezone을 한국시간(KST) 으로 설정하기 (0) | 2022.12.09 |
[Airflow] Dags 관리(예제 Dags 삭제 및 Dags 경로 설정) (0) | 2022.11.24 |
Airflow + Python 스크립트 활용 DAG 구성 (0) | 2022.10.21 |