Установка Apache Superset

Еще одна краткая опорная инструкция — установка Apache Superset. Вариант с развертыванием через Docker и Docker Compose.

Используемые версии ПО

Версия Linux — Rocky Linux release 9.7 (Blue Onyx).

Аппаратные характеристики сервера

Для установки рекомендуется сервер с объемом оперативной памяти 8 ГБ. На сервере с 4 ГБ оперативной памяти сборка контейнеров не завершалаусь успешно.

Аппаратные характеристики тестового сервера:

ПараметрЗначение
Количество vCPU4
Объем оперативной памяти, ГБ8
Объем системного диска, ГБ40
Тип системного дискаSSD

Предварительная настройка сервера

Сначала установим необходимые предварительные компоненты — Docker и утилиты (git. mc, nano).

Установка Docker

Первым шагом установим Docker:

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

Проверяем статус службы:

sudo systemctl status docker

Установка утилит

Выполнил установку необходимых утилит:

sudo dnf install -y nano mc git

Отключение SELinux

Отключаем SELinux:

nano /etc/selinux/config

Меняет значение параметра SELINUX на «disabled»:

SELINUX=disabled

Сохраняем изменения и перезагружаем сервер.

Установка Apache Superset

Переходим к установке Apache Superset:

1. Я буду хранить все файлы в директории /opt.

cd /opt

2. Клонируем репозиторий:

git clone https://github.com/apache/superset
cd superset

3. Запускаем контейнеры:

docker compose -f docker-compose-non-dev.yml build
docker compose -f docker-compose-non-dev.yml up -d

4. Проверяем статус контейнеров. Все контейнеры должны быть запущены:

docker compose -f docker-compose-non-dev.yml ps
[root@CHGA superset]# docker compose -f docker-compose-non-dev.yml ps
NAME                   IMAGE                           COMMAND                  SERVICE                CREATED          STATUS                        PORTS
superset_app           superset-superset               "/app/docker/docker-…"   superset               13 minutes ago   Up About a minute (healthy)   0.0.0.0:8088->8088/tcp, [::]:8088->8088/tcp
superset_cache         redis:7                         "docker-entrypoint.s…"   redis                  13 minutes ago   Up 13 minutes                 6379/tcp
superset_db            postgres:17                     "docker-entrypoint.s…"   db                     13 minutes ago   Up 13 minutes                 5432/tcp
superset_worker        superset-superset-worker        "/app/docker/docker-…"   superset-worker        13 minutes ago   Up About a minute (healthy)   8088/tcp
superset_worker_beat   superset-superset-worker-beat   "/app/docker/docker-…"   superset-worker-beat   13 minutes ago   Up About a minute             8088/tcp
[root@CHGA superset]#

Веб интерфейс Superset будет доступен по HTTP с IP-адреса сервера:

http://192.168.56.161:8088
login: admin
password: admin

Настройка HTTPS для Apache Superset

Для настройки HTTPS глобально нужно выполнить две веши:

  1. Настроить прослушивание контейнера с Superset только на локальном адресе (127.0.0.1), чтобы исключить любые обращени к нему по незащищенному соединению.
  2. Настроить веб сервер (например, nginx) и создать публикацию ресурса.

Приступим:

1. Первым шагом установим nginx.

sudo dnf install -y nginx

2. Настроим автоматически запуск nginx:

sudo systemctl enable --now nginx

3. Проверяем статус службы:

sudo systemctl status nginx

4. Скорректируем файл для Docker Compose, чтобы настроить прослушивание только на адресе локального хоста:

cd /opt/superset
nano docker-compose-non-dev.yml

5. Для сервиса superset необходимо указать следующие параметры публикации портов:

ports:
      - 127.0.0.1:8088:8088

6. Сохраняем изменения и перезапускаем контейнеры:

cd /opt/superset
docker compose -f docker-compose-non-dev.yml down
docker compose -f docker-compose-non-dev.yml up -d

7. Проверяем, что конейнер Superset прослушивает только локальные подключения:

ss -tulpn | grep 8088
[root@CHGA superset]# ss -tulpn | grep 8088
tcp   LISTEN 0      4096       127.0.0.1:8088      0.0.0.0:*    users:(("docker-proxy",pid=12932,fd=8))
[root@CHGA superset]#

8. Создаем правило публикации на nginx:

nano /etc/nginx/superset.conf

9. Конфигурация публикации:

server {
    listen 80;
    server_name superset.itproblog.ru;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    return 301 https://superset.itproblog.ru$request_uri;

}

server {
    listen 443 ssl;
    server_name superset.itproblog.ru;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ssl_certificate         /etc/nginx/ssl/itproblog.crt;
    ssl_certificate_key     /etc/nginx/ssl/itproblog.key;

    location / {
        proxy_set_header Host $host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:8088/;
    }
}

9. Проверяем конфигурацию:

nginx -t
[root@CHGA superset]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@CHGA superset]#

10. Перезагружаем конфигурацию nginx:

systemctl reload nginx

11. Проверяем доступность веб интерфейса Superset по HTTPS.

Пример подключения Apache Superset к ClickHouse

Apache Superset поддерживает СУБД ClickHouse. Однако, из коробки поддержки нет. Необходим ряд дополнительных действий:

1. Останавливает текущие контейнеры:

docker compose -f docker-compose-non-dev.yml down

2. Добавляем пакеты для поддержки ClickHouse:

cd /opt/superset
echo "clickhouse-connect>=0.13.0" >> ./docker/requirements-local.txt

3. Пересобираем контейнеры:

docker compose -f docker-compose-non-dev.yml build

4. Запускаем контейнеры:

docker compose -f docker-compose-non-dev.yml build

5. Подключаемся по веб интерфейсу администрирования Superset и перейти в раздел подключения дополнительных источников.

6. Подключаем дополнительный источник данных:

7. Теперь в списке поддерживаемых источников данных должен появиться ClickHouse:

8. Указываем параметры подключения к ClickHouse. В моем случае сервер ClickHouse развернут на том же хосте, что и Superset.

9. В списке источников данных должна появиться новая строка:

Подключение Apache Superset к ClickHouse завершено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *