Наш сайт использует файлы cookie, чтобы улучшить работу сайта, повысить его эффективность и удобство
Настройки сookie
Файлы cookie, необходимые для правильной работы сайта, всегда разрешены.
Основные файлы cookie
Всегда Включено. Эти файлы cookie необходимы для использования веб-сайта и его функций. Их нельзя отключить. Они устанавливаются в ответ на ваши запросы, такие как настройка параметров конфиденциальности, вход в систему или заполнение форм.
Аналитические файлы cookie
Disabled
Эти файлы cookie нужны чтобы помочь нам понять, на сколько вам удобен наш веб-сайт и насколько эффективны наши маркетологи:) Смотрите список аналитических файлов cookie, которые мы используем.
Рекламные файлы cookie
Disabled
Эти файлы cookie предоставляют информацию рекламным компаниям с целью предоставления или ограничения персонализированной рекламы. Эта информация может быть передана другим рекламным компаниям. Смотрите список рекламных файлов cookie, которые мы используем.

Установка компонентов Arenadata на группу узлов под управлением Ubuntu 22.04

блог о bi, №1 в рунете

Наш первый опыт использования

Первый опыт работы с Arenadata оказался весьма положительным. Установка компонентов прошла без существенных сложностей благодаря хорошо задокументированным процессам и удобному интерфейсу ADCM. Несмотря на первоначальные опасения по поводу настройки хостпровайдеров, SSH-подключения заработали с первого раза после корректной настройки ключей. Особенно впечатлило удобство управления кластерами ADB и ADQM, а также гибкость конфигурации сервисов.

Проблемы возникли лишь при настройке доступа к NiFi, но их удалось быстро решить с помощью Nginx. В результате, мы получили стабильную и масштабируемую платформу для работы с большими данными, что значительно ускорило наши внутренние процессы.

Настройка ADCM

1. Установка Docker на машину управления ADCM, все команды будем выполнять от пользователя root:
# apt-get update
# apt-get install -y ca-certificates curl gnupg lsb-release
# install -m 0755 -d /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | tee /etc/apt/keyrings/docker.asc > /dev/null
# chmod a+r /etc/apt/keyrings/docker.asc
# echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  tee /etc/apt/sources.list.d/docker.list
# apt-get update
# apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2. Установка ADCM — оффлайн метод через скрипт инсталляции. Загрузим на сервер установочный скрипт .sh и выполним его:
# ./adcm_x.x.x.sh master_adcm
3. После выполнения скрипта будет создан контейнер с веб-интерфейсом, доступным по адресу:
http://ваш_ip:8000/login

Данные для входа по умолчанию:
  • Логин: admin
  • Пароль:admin
4. Изменение пароля администратора.
После первого входа перейдите в раздел /profile и смените пароль администратора для повышения безопасности.
5. Настройка панели ADCM.
В настройках необходимо указать URL панели ADCM, чтобы обеспечить корректную работу всех компонентов.
При текущей установке значение ключа ADCM’s URL должно быть http://ваш_ip:8000
Далее, нажать кнопку «Save».

Настройка хостпровайдеров

Для управления нодами кластера будем использовать SSH.
1. Загрузка SSH bundle.
Перейдите в раздел /bundles в интерфейсе ADCM и загрузите соответствующий SSH bundle.
2. Создание хостпровайдера.
После загрузки bundle:

  • Перейдите в раздел /hostproviders
  • Нажмите «Create hostprovider».
3. Конфигурация хостпровайдера.
Зайдите в созданный провайдер, перейдите в его конфигурацию и заполните поле SSH private key. Этот ключ будет использоваться для подключения к узлам кластера.
Например, ключ можно взять из контейнера adcm, который ранее был запущен в docker. Чтобы посмотреть его, можно выполнить команду на главном узле adcm:
# docker exec adcm cat /root/.ssh/id_rsa*
или использовать любой другой ранее сгенерированный ключ. И нажать на «Save» для сохранения конфигурации.

Подготовка и добавление рабочих узлов

1. Настройка имен хостов.
Убедитесь, что имена узлов разрешаются в IP-адреса, используя DNS или файл /etc/hosts, для некоторых компонентов это имеет критическое значение.

Пример настройки для резольвинга через файл:
# /etc/hostname
worker-1

# /etc/hosts
127.0.1.1 localhost
127.0.0.1 localhost
aaa.bbb.ccc.ddd worker-1.adcm.my.domain.name
2. Настройка SSH-доступа.
Добавьте публичный ключ вашего хостпровайдера в файл /root/.ssh/authorized_keys на каждом узле:
# echo "ваш_публичный_ключ" > /root/.ssh/authorized_keys
3. Добавление узлов в ADCM.
Перейдите в раздел /hosts и нажмите «Create host» для добавления каждого рабочего узла.
4. Проверка доступности узлов.
После добавления узлов выполните проверку их доступности через меню Actions в интерфейсе ADCM

Создание ADB кластера

Будем развертывать ADB кластер в минимальной конфигурации (1 мастер и 2 воркера).
1. Загрузка ADB bundle
Перейдите в раздел /bundles и загрузите ADB bundle.
2. Создание кластера.
На основе загруженного bundle создайте новый кластер:

  • Перейдите в /clusters.
  • Нажмите «Create cluster».
3. Добавление служб в кластер.
Перейдите в раздел Services и добавьте необходимые службы в кластер (минимальная конфигурация включает мастер и два воркера).
4. Маппинг служб на узлы.
В разделе Mapping распределите службы по узлам.
5. Установка служб.
Переходим в раздел Services и в меню Actions выбираем Install. Статус установки отобразится здесь же в интерфейсе.
6. Управление кластером.
Кластером можно управлять через меню Actions в ADCM или через пользователя gpadmin на мастер-ноде ADB.
7. Настройка подключения по паролю:

  • Заходим на мастер ноду под пользователем gpadmin и подключаемся к базе:
# su – gpadmin
$ psql
  • Создаём пользователя для подключения:
sql> CREATE ROLE my_username WITH LOGIN PASSWORD 'my_password';
  • Разрешите подключение из любого места, добавив в pg_hba.conf :
$ echo "host    all     all     0.0.0.0/0     md5" >> /data1/master/gpseg-1/pg_hba.conf
  • Перезапуск:
$ gpstop -u

Установка ADQM

Установка ADQM аналогична ADB:

  • Загрузите ADQM bundle.
  • Создайте кластер.
  • Добавьте службу.
  • Настройте маппинг узлов.
  • Установите службы.

Настройка доступа к ADQM

По умолчанию ADQM доступен только с localhost. Чтобы разрешить подключение из любого места:

  • Отредактируйте файл /etc/clickhouse-server/users.xml, добавив:
<networks>
    <ip>::/0</ip>
</networks>
  • В файле /etc/clickhouse-server/users.d/credentials.xml укажите хеш пароля пользователя default в секции password_sha256_hex
  • Перезапустите сервер:
# systemctl restart clickhouse-server

Установка ADS

Установка ADS также аналогична ADB и ADQM:

  • Загрузите ADS bundle.
  • Создайте кластер.
  • Добавьте службы.
  • Настройте маппинг узлов.
  • Установите службы.

Примечания по установке NiFi

По умолчанию NiFi в ADCM предполагает авторизацию через AD/LDAP. При отсутствии этих компонентов доступ к NiFi останется открытым. Один из способов закрыть доступ — использовать HTTP-авторизацию через Nginx.
1. Ограничение доступа к NiFi локальным интерфейсам.
Убедитесь, что имя ноды соответствует локальному интерфейсу в /etc/hosts :
127.0.1.1 localhost worker-2.adcm.my.domain.name
127.0.0.1 localhost
Перезапустите NiFi через ADCM для применения настроек.
2. Установка и настройка Nginx:
# apt update
# apt install -y nginx
3. Создайте конфигурационный файл для Nginx:
tee /etc/nginx/conf.d/nifi.conf > /dev/null <<EOL
server {
    listen 8081;
    client_max_body_size 512M;
    location / {
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
        proxy_pass http://127.0.1.1:9090;
        proxy_set_header Host \$host;
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
    }
}
EOL
4. Создайте файл .htpasswd для защиты доступа:
# htpasswd -c /etc/nginx/conf.d/.htpasswd <username>
Перезапустите Nginx:
# systemctl restart nginx
Теперь доступ к NiFi будет защищён логином и паролем по адресу:
http://ваш_ip:8081