Data Engineering/Airflow 4

Airflow의 parallelism과 dag_concurrency

parallelism This defines the maximum number of task instances that can run concurrently in Airflow regardless of scheduler count and worker count. Generally, this value is reflective of the number of task instances with the running state in the metadata database. scheduler와 worker의 개수와 상관없이 Airflow 내에서 동시에 구동할 수 있는 task 인스턴스의 최대 개수 Configuration Reference — Airflow Documentation airflow.apache.o..

airflow-webserver-monitor.pid is already locked

증상 Airflow webserver, scheduler가 작동하지 않음 Error log Traceback (most recent call last): File "/home/keti/.local/lib/python3.6/site-packages/lockfile/pidlockfile.py", line 77, in acquire write_pid_to_pidfile(self.path) File "/home/keti/.local/lib/python3.6/site-packages/lockfile/pidlockfile.py", line 161, in write_pid_to_pidfile pidfile_fd = os.open(pidfile_path, open_flags, open_mode) FileExistsEr..

Dockeroperator의 Bind mount을 활용한 Airflow 운영

Docker operator 나는 Airflow에서 Dockeroperator를 활용한다. Dockeroperator는 scheduling된 job을 수행할 때 미리 구성해놓은 docker image로 container를 생성하고, 그 안에서 job을 수행한다. 이러한 방식을 활용한 주요한 이유는 의존성 문제이다. 각각의 job이 요구하는 환경을 docker image로 미리 구성해놓고, 필요할 때 마다 job에 맞는 환경을 생성하는 방식으로 예기치 않게 발생할 수 있는 문제에 대처하기 위해 Dockeroperator를 활용했다. Mount 방식에 대한 고민 Docker image를 만들며, 컨테이너 내부에 job을 위한 코드는 어떻게 담을 것인지에 대한 고민을 시작했다. Dockerfile의 COPY ..

Airflow tutorial - 1

Airflow? 스케쥴러 특징 장점 Install ~ $ conda create -n airflow_tutorial python=3.8 ~ $ conda activate airflow_tutorial (airflow_tutorial) ~ $ pip install apache-airflow (airflow_tutorial) ~ $ airflow version # install check 2.1.1 (airflow_tutorial) ~ $ mkdir airflow && cd airflowairflow home path 설정해주기 (airflow_tutorial) ~/airflow $ vi ~/.zshrc # 자신이 사용하는 쉘에 따라서 vi로 편집 # ~/.zshrc export AIRFLOW_HOME=pa..