Apache Superset — необходимый и достаточный гайд по сборке
Не забываем и о самых распространенных ошибках, допускаемых при развертывании Apache Superset

В этой статье мы поговорим о том, как развернуть Apache Superset . Официальная документация слишком сложна для новичка, поэтому я постарался максимально упростить ее.
В первую очередь необходимо установить следующее:
- Python 3.6 или 3.7;
- NodeJS;
- NPM;
- Менеджер пакетов Yarn для NodeJS
Затем установим пакеты зависимостей для различных ОС:
MacOS:
brew install pkg-config libffi openssl python env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography==2.4.2
Debian/Ubuntu:
sudo apt-get install build-essential libssl-dev libffi-dev python3.6-dev python-pip libsasl2-dev libldap2-dev
Fedora/RHEL- дистрибутивы:
sudo yum upgrade python36u-setuptools sudo yum install gcc gcc-c++ libffi-devel python36u-devel python36u-pip python-wheel openssl-devel libsasl2-devel openldap-devel
Для RHEL python36u-devel не существует, поэтому найдите правильную зависимость python3-devel, соответствующую Вашей архитектуре:
yum search python3 | grep devel
Как только зависимости уставлены, смело переходите к следующему шагу.
Репозиторий Superset содержит как фронтенд, так и бэкенд, которые нужно собирать отдельно. Начнем со сборки бэкенда.
Клонируйте репозиторий
git clone https://github.com/apache/incubator-superset.git cd incubator-superset/
Создайте виртуальную среду
Создание виртуального окружения в Python – это важный этап в разработке проектов, который обеспечивает изоляцию зависимостей и предотвращает конфликты между версиями библиотек:
python3 -m venv path/to/new/virtual/env
Как только Вы создали виртуальную среду, активируйте ее:
source path/to/new/virtual/env/bin/activate
Установите зависимости
Теперь Вы можете установить все необходимые зависимости:
pip install -r requirements.txt pip install -r requirements-dev.txt
Некоторые из зависимостей, присутствующих в файле requirements.txt, обычно вызывают ошибки при запуске Superset. Чтобы не допустить их, установите следующее:
pip install numpy==1.17 pip install sqlalchemy==1.2.18 pip install pandas==0.23.4 pip install markupsafe==1.0 pip install mysqlclient
Установите Superset
pip install -e .
Благодаря этому Вы получите доступ к файлу setup.py, необходимому для установки Superset.
Теперь перейдем к фронтэнду.
Изменяем наименование каталога на superset/assets:
cd superset/assets/
Как только Вы сделаете, переходите к настройке пользовательского интерфейса Superset.
Извлеките зависимости
Сначала мы соберем все необходимые зависимости node js с помощью yarn. Для этого достаточно запустить yarn.
Yarn загрузит и установит все зависимости, сохраненные в файле package.json.
Создание пользовательского интерфейса
Для создания фронтэнда используйте:
npm run build
Вуаля! Мы установили Superset. Теперь запустите его с помощью команды:
superset run
Запустите тесты
Для запуска всех тестов используйте команду:
tox
Теперь предлагаю рассмотреть самые распространенные ошибки при сборке Superset.
Ошибка: flask_appbuilder.base: у объекта "NoneType" отсутствует атрибут "name".
Решение:
superset init superset db upgrade
Ошибка: сбой при создании виртуальной среды: virtualenv установлен с python3.6, но для создания venv Вы используете python3.7.
Решение: Переустановите virtualenv для python3.7
Ошибка: Отсутствует libffi.so
Решение: установите пакет python3-devel
Ошибка: не найдена команда flask
Решение:
pip install flask-cli
Ошибка: Yarn - Похоже, возникли проблемы с сетевым подключением. Пробуем еще раз
Решение: Вероятно, Вы устанавливаете все эти зависимости в закрытой сети, например, в офисе. Чтобы загрузить зависимости настройте действительный прокси-сервер yarn:
export http_proxy=http://host:port/ export https_proxy=https://host:port/ yarn config set proxy http://host:port/ yarn config set https-proxy https://host:port/
Если Вы столкнулись с другими ошибками, попробуйте найти их описание в официальном руководстве по сборке.




