사진과 음악을 좋아하는 개발자 지망생의 블로그

[Airflow] ValueError: Unable to configure handler 'processor': [Errno 13] Permission denied: '/opt/airflow/logs/scheduler' 본문

개발/삽질일기

[Airflow] ValueError: Unable to configure handler 'processor': [Errno 13] Permission denied: '/opt/airflow/logs/scheduler'

devculture309 2023. 6. 20. 08:53
반응형

정확히는 다음과 같이 에러가 발생했

airflow-scheduler_1  |
airflow-worker_1     | ....................
airflow-worker_1     | ERROR! Maximum number of retries (20) reached.
airflow-worker_1     |
airflow-worker_1     | Last check result:
airflow-worker_1     | $ airflow db check
airflow-worker_1     | Unable to load the config, contains a configuration error.
airflow-worker_1     | Traceback (most recent call last):
airflow-worker_1     |   File "/usr/local/lib/python3.6/pathlib.py", line 1248, in mkdir
airflow-worker_1     |     self._accessor.mkdir(self, mode)
airflow-worker_1     |   File "/usr/local/lib/python3.6/pathlib.py", line 387, in wrapped
airflow-worker_1     |     return strfunc(str(pathobj), *args)
airflow-worker_1     | FileNotFoundError: [Errno 2] No such file or directory: '/opt/airflow/logs/scheduler/2021-07-04'
airflow-worker_1     |
airflow-worker_1     | During handling of the above exception, another exception occurred:
airflow-worker_1     |
airflow-worker_1     | Traceback (most recent call last):
airflow-worker_1     |   File "/usr/local/lib/python3.6/logging/config.py", line 565, in configure
airflow-worker_1     |     handler = self.configure_handler(handlers[name])
airflow-worker_1     |   File "/usr/local/lib/python3.6/logging/config.py", line 738, in configure_handler
airflow-worker_1     |     result = factory(**kwargs)
airflow-worker_1     |   File "/home/airflow/.local/lib/python3.6/site-packages/airflow/utils/log/file_processor_handler.py", line 46, in __init__
airflow-worker_1     |     Path(self._get_log_directory()).mkdir(parents=True, exist_ok=True)
airflow-worker_1     |   File "/usr/local/lib/python3.6/pathlib.py", line 1252, in mkdir
airflow-worker_1     |     self.parent.mkdir(parents=True, exist_ok=True)
airflow-worker_1     |   File "/usr/local/lib/python3.6/pathlib.py", line 1248, in mkdir
airflow-worker_1     |     self._accessor.mkdir(self, mode)
airflow-worker_1     |   File "/usr/local/lib/python3.6/pathlib.py", line 387, in wrapped
airflow-worker_1     |     return strfunc(str(pathobj), *args)
airflow-worker_1     | PermissionError: [Errno 13] Permission denied: '/opt/airflow/logs/scheduler'
airflow-worker_1     |
airflow-worker_1     | During handling of the above exception, another exception occurred:
airflow-worker_1     |
airflow-worker_1     | Traceback (most recent call last):
airflow-worker_1     |   File "/home/airflow/.local/bin/airflow", line 5, in <module>
airflow-worker_1     |     from airflow.__main__ import main
airflow-worker_1     |   File "/home/airflow/.local/lib/python3.6/site-packages/airflow/__init__.py", line 46, in <module>
airflow-worker_1     |     settings.initialize()
airflow-worker_1     |   File "/home/airflow/.local/lib/python3.6/site-packages/airflow/settings.py", line 446, in initialize
airflow-worker_1     |     LOGGING_CLASS_PATH = configure_logging()
airflow-worker_1     |   File "/home/airflow/.local/lib/python3.6/site-packages/airflow/logging_config.py", line 73, in configure_logging
airflow-worker_1     |     raise e
airflow-worker_1     |   File "/home/airflow/.local/lib/python3.6/site-packages/airflow/logging_config.py", line 68, in configure_logging
airflow-worker_1     |     dictConfig(logging_config)
airflow-worker_1     |   File "/usr/local/lib/python3.6/logging/config.py", line 802, in dictConfig
airflow-worker_1     |     dictConfigClass(config).configure()
airflow-worker_1     |   File "/usr/local/lib/python3.6/logging/config.py", line 573, in configure
airflow-worker_1     |     '%r: %s' % (name, e))
airflow-worker_1     | ValueError: Unable to configure handler 'processor': [Errno 13] Permission denied: '/opt/airflow/logs/scheduler'

하나의 에러 발생으로 나머지 두개의 에러가 연쇄적으로 발생한 것으로 보이는데

이는 'AIRFLOW_UID' 설정을 안해줘서 발생한 문제였다.

'AIRFLOW_UID' 권리 설정은 AIRFLOW 설치 문서에서도 나와있는건데 무시하고 넘어간 탓이 크다.

이를 해결하기 위해선

다음과 같은 명령어를 실행시켜주면 간단히 해결된다.

echo -e "AIRFLOW_UID=$(id -u)" > .env

 

참고:

Running Airflow in Docker — Airflow Documentation (apache.org)

 

Running Airflow in Docker — Airflow Documentation

 

airflow.apache.org

ValueError: Unable to configure handler 'processor': [Errno 13] Permission denied: '/opt/airflow/logs/scheduler' · apache/airflow · Discussion #16801 (github.com)

 

ValueError: Unable to configure handler 'processor': [Errno 13] Permission denied: '/opt/airflow/logs/scheduler' · apache/airfl

I'm getting the above error after running the below compose file in a Linux VM version: '3.4' x-airflow-common: &airflow-common image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.1.1} environment: &airf...

github.com

 

반응형