web-dev-qa-db-fra.com

Errno 13 Autorisation refusée lorsque Airflow essaie d'écrire dans les journaux

Nous rencontrons une erreur d'autorisation lors de l'utilisation d'Airflow et nous recevons l'erreur suivante:

PermissionError: [Errno 13] Permission denied: '/usr/local/airflow/logs/scheduler/2019-12-18/../../../../home

Nous avons essayé d'utiliser chmod 777 -R sur le répertoire/usr/local/airflow/logs/schedule dans le conteneur, mais cela ne semble pas avoir fait l'affaire.

Nous avons cette pièce dans notre script entrypoint.sh:

export AIRFLOW__CORE__BASE_LOGS_FOLDER="/usr/local/airflow/logs

Quelqu'un d'autre a-t-il rencontré ce problème d'autorisation de journal d'airflow? Je ne peux pas trouver grand-chose sur celui-ci en particulier en ligne.

3
phenderbender

J'ai également le même problème avec Apache Airflow 1.10.7.

Traceback (most recent call last):
  File "/usr/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/usr/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/site-packages/airflow/jobs/scheduler_job.py", line 135, in _run_file_processor
    set_context(log, file_path)
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/site-packages/airflow/utils/log/logging_mixin.py", line 198, in set_context
    handler.set_context(value)
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/site-packages/airflow/utils/log/file_processor_handler.py", line 65, in set_context
    local_loc = self._init_file(filename)
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/site-packages/airflow/utils/log/file_processor_handler.py", line 148, in _init_file
    os.makedirs(directory)
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/os.py", line 211, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/os.py", line 211, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/os.py", line 211, in makedirs
    makedirs(head, exist_ok=exist_ok)
  [Previous line repeated 5 more times]
  File "/home/radifar/.virtualenvs/airflow/lib/python3.7/os.py", line 221, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/media/radifar/radifar-dsl/Workflow/Airflow/airflow-home/logs/scheduler/2020-01-04/../../../../../../../home'

Après avoir vérifié le fonctionnement de file_processor_handler.py, je constate que l'erreur a été causée par l'emplacement différent du répertoire de l'exemple de fichier dag et nos paramètres de dossier dag. Dans mon cas, le dossier 7 au-dessus du dossier 2020-01-04 est/media/radifar. Dans votre cas, le dossier 4 au-dessus du dossier 2019-12-18 est/usr/local. C'est pourquoi la PermissionError a été déclenchée.

J'ai pu résoudre ce problème en nettoyant le dossier AIRFLOW_HOME puis en exécutant airflow version, définissez load_example sur False dans airflow.cfg . Exécutez ensuite airflow initdb. Après cela, je peux utiliser le flux d'air sans erreur.

1
Muhammad Radifar