web-dev-qa-db-ja.com

Errno 13 Airflowがログに書き込もうとするとアクセスが拒否されました

Airflowを使用しているときに権限エラーが発生し、次のエラーを受け取ります。

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

コンテナー内の/ usr/local/airflow/logs/scheduleディレクトリーでchmod 777 -Rを使用してみましたが、これでうまくいっていないようです。

Entrypoint.shスクリプトにこの部分があります。

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

他の誰かがこの気流ログ許可問題に遭遇しましたか?これについては特にオンラインで多くを見つけることができないようです。

3
phenderbender

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'

File_processor_handler.pyがどのように機能するかを確認した後、サンプルdagの異なるディレクトリの場所とdagフォルダー設定が原因でエラーが発生したことがわかりました。私の場合、2020-01-04フォルダーの上にある7フォルダーは/ media/radifarです。あなたのケースでは、フォルダー2019-12-18の上にある4フォルダーは/ usr/localです。そのため、PermissionErrorが発生しました。

AIRFLOW_HOMEフォルダーをクリーンアップしてairflow versionairflow.cfgでload_exampleをFalseに設定 を実行することで、この問題を解決できました。次に、airflow initdbを実行します。その後、エラーなしでエアフローを使用できます。

1