web-сервер airflow -p 8080 приводит к ошибке OSError: [Errno 13] Отказано в доступе
После установки пакета airflow в экземпляре AWS EC2 я пытаюсь запустить веб-сервер airflow. Он показывает проблему с отказом в разрешении. Я не получаю файл или папку, которые он пытается создать / изменить, чтобы получить эту ошибку.
[root@ip-172-31-62-1 airflow]# /usr/local/bin/airflow webserver -p 8080
[2017-06-13 04:24:35,692] {__init__.py:57} INFO - Using executor SequentialExecutor
/usr/local/lib/python2.7/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.
.format(x=modname), ExtDeprecationWarning
[2017-06-13 04:24:36,093] [4053] {models.py:167} INFO - Filling up the DagBag from /home/ec2-user/airflow/dags
Running the Gunicorn Server with:
Workers: 4 sync
Host: 0.0.0.0:8080
Timeout: 120
Logfiles: - -
=================================================================
Traceback (most recent call last):
File "/usr/local/bin/airflow", line 28, in <module>
args.func(args)
File "/usr/local/lib/python2.7/site-packages/airflow/bin/cli.py", line 791, in webserver
gunicorn_master_proc = subprocess.Popen(run_args)
File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
------------------------------------
The Value of run_args in above error message is
['gunicorn', '-w', '4', '-k', 'sync', '-t', '120', '-b', '0.0.0.0:8080', '-n', 'airflow-webserver', '-p', '/home/ec2-user/airflow/airflow-webserver.pid', '-c', 'airflow.www.gunicorn_config', '--access-logfile', '-', '--error-logfile', '-', 'airflow.www.app:cached_app()']
1 ответ
У меня была такая же проблема. Это было решено, когда я установил всю установку в режиме sudo. Пожалуйста, найдите команды, которые я использовал:
sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install python-pip
sudo -H pip install airflow
sudo airflow initdb
sudo airflow webserver -p 8080
У меня была такая же проблема, и существующий ответ не сработал бы для меня, потому что у пользователя не было разрешений sudo. Для меня сработало добавление корзины к пути:
export PATH=$PATH:/usr/local/bin
Или в моем случае:
export PATH=$PATH:~/.local/bin
Тогда я мог просто бежать:
airflow webserver -p 8080
Вместо:
.local/bin/airflow webserver -p 8080