Я попытался установить Airflow с помощью этой команды и получил сообщение об ошибке.
#pip3 install apache-airflow[postgres,gcp,aws,celery]
Я точно следовал инструкциям по установке, что здесь пошло не так?
https://airflow.apache.org/docs/stable/installation.html
... a long list of successful feedback, and then this:
building 'psutil._psutil_linux' extension
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/psutil
gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=567 -DPSUTIL_LINUX=1 -I/usr/include/python3.6m -c psutil/_psutil_common.c -o build/temp.linux-x86_64-3.6/psutil/_psutil_common.o
psutil/_psutil_common.c:9:10: fatal error: Python.h: No such file or directory
#include <Python.h>
^~~~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1jwpvsnq/psutil/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ni_brusw-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-1jwpvsnq/psutil/
Инструкции по установке для Airflow с использованием Postgres в качестве внутреннего интерфейса неверны.
Apache В документации Airflow неясно, как установить и настроить Airflow с Postgres в качестве бэкэнда.
Я установил с:
pip install apache-airflow[postgres]
Сейчас что?
В инструкции по установке есть ссылка на "Инициализация базы данных базы данных"
Я нажимаю там. Он имеет следующую строку:
If you decide to use Postgres, we recommend using the psycopg2 driver and specifying it in your SqlAlchemy connection string.
ОК, поэтому я `pip install psychopg2 ', этого достаточно, чтобы удовлетворить рекомендацию по использованию драйвера' psycopg2 '?
И теперь, где же моя строка подключения SqlAlchemy? Где находится строка SqlAlchemy? какой файл? Я нигде не вижу файлов.
Теперь там написано:
Also note that since SqlAlchemy does not expose a way to target a specific schema in the Postgres connection URI, you may want to set a default schema for your role with a command similar to ALTER ROLE username SET search_path = airflow, foobar;
Что это значит?
Означает ли это, что я должен создать роль / имя пользователя для использования Airflow / SqlAlchemy?
И если так, какое имя пользователя будет хорошим? ('airflow'?)
И где мне установить Postgres URI соединения и какой именно будет синтаксис?
Инструкции по установке, кажется, подсказывают использование слово "может захотеть" , а затем не дает никаких подробностей о том, как следовать этим советам.
Я не думаю, что в инструкциях по установке должны использоваться формулировки, которые указывают на предложения, я просто Я хочу пошаговые инструкции о том, как заставить это работать.
Затем говорится:
Once you’ve setup your database to host Airflow
Как я настроил свою базу данных для размещения Airflow? Что я там делал, чтобы достичь этой цели?
Тогда там написано:
you’ll need to alter the SqlAlchemy connection string located in your configuration file $AIRFLOW_HOME/airflow.cfg
Я нигде не вижу airflow.cfg - его нигде нет.
Затем говорится:
You should then also change the “executor” setting to use “LocalExecutor”, an executor that can parallelize task instances locally.
Что это значит?
В этот момент говорится:
# initialize the database
airflow initdb
Я не думаю, что мне следует запускать это на этом этапе, потому что я понятия не имею, о чем говорилось в предыдущих инструкциях.
Если то, что должно быть очень простой документацией, это плохо, я не могу представить, как выглядит код.