BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Trino на Kubernetes с помощью Helm

Trino на Kubernetes с помощью Helm

Kubernetes - это платформа для оркестровки контейнеров, которая позволяет развертывать Trino и другие приложения в различных типах инфраструктуры. Это может быть как развертывание на ноутбуке с помощью таких инструментов, как kind, так и запуск на управляемой службе Kubernetes в облачных сервисах, таких как Amazon Elastic Kubernetes Service, Google Kubernetes Engine, Azure Kubernetes Service и т.д.

Самый быстрый способ запустить Trino на Kubernetes - использовать Trino Helm chart. Helm - это менеджер пакетов для приложений Kubernetes, который позволяет упростить установку приложений за счет шаблонизации конфигурационных файлов Kubernetes. Это позволяет создавать прототипы на локальном или местном кластере и использовать тот же механизм развертывания для работы в облаке.

 

Требования

  • Кластер Kubernetes с поддерживаемой версией  Kubernetes. Если у Вас нет кластера Kubernetes, запустите его локально с помощью  kind.
  • kubectl – версия должна соответствовать политике версий Kubernetes, установленной на машине, управляющей развертыванием Kubernetes.
  • helm – версия должна соответствовать политике версий Helm, установленной на машине, управляющей развертыванием Kubernetes.

 

 

Запуск Trino с помощью Helm

Выполните следующие команды из системы с установленными и настроенными helm и kubectl для подключения к запущенному кластеру Kubernetes:

  1. Убедитесь в том, что kubectl указывает на правильный кластер, выполнив команду:
kubectl cluster-info
 
  1. Добавьте репозиторий Trino Helm Chart в Helm, если Вы еще этого не сделали. Вы можете назвать репозиторий так, как Вам хочется, например, просто trino.
helm repo add trino https://trinodb.github.io/charts

 

  1. Установите Trino на кластер Kubernetes с помощью Helm Chart. Для использования всех значения по умолчанию и создания кластера под названием example-trino-cluster выполните команду install
helm install example-trino-cluster trino/trino

 

Это cгенерирует конфигурационные файлы Kubernetes и добавит свойства в Helm Charts. Helm Chart содержит значения по умолчанию, которые могут быть переопределены с помощью YAML-файла.

  • (по желанию) чтобы переопределить значения, заданные по умолчанию, создайте свою собственную конфигурацию YAML  и определите параметры развертывания. Чтобы запустить команду установки с использованием example.yaml, добавьте параметр f в команду установки. Обязательно следуйте указаниям касательно присвоения имен конфигурационным файлам.
  • helm install -f example.yaml example-trino-cluster trino/trino

 

Вы должны увидеть следующий вывод:

NAME: example-trino-cluster
LAST DEPLOYED: Tue Sep 13 14:12:09 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default --selector "app.kubernetes.io/name=trino,app.kubernetes.io/instance=example-trino-cluster,app.kubernetes.io/component=coordinator" --output name)
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl port-forward $POD_NAME 8080:8080

 

Вывод зависит от Вашей конфигурации о названия и кластера. Например, порт 8080 установлен .service.port в example.yaml.

  1. Для того, чтобы проверить,  что все развертывания и сервисы работают должным образом, выполните команду:
kubectl get all

 

Вы должны увидеть запущенные подсистемы, развертывания и наборы реплик. Хорошим показателем того, что все работает правильно, является то, что все подсистемы возвращают статус READY.

NAME                                               READY   STATUS    RESTARTS   AGE
pod/example-trino-cluster-coordinator-bfb74c98d-rnrxd   1/1     Running   0          161m
pod/example-trino-cluster-worker-76f6bf54d6-hvl8n       1/1     Running   0          161m
pod/example-trino-cluster-worker-76f6bf54d6-tcqgb       1/1     Running   0          161m
 
NAME                       TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
service/example-trino-cluster   ClusterIP   10.96.25.35   <none>        8080/TCP   161m
 
NAME                                           READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/example-trino-cluster-coordinator   1/1     1            1           161m
deployment.apps/example-trino-cluster-worker        2/2     2            2           161m
 
NAME                                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/example-trino-cluster-coordinator-bfb74c98d   1         1         1       161m
replicaset.apps/example-trino-cluster-worker-76f6bf54d6       2         2         2       161m

 

В выводе показаны запущенные поды, к которым относятся контейнеры Trino. Чтобы лучше понять этот вывод, ознакомьтесь со следующими материалами:

  • команда кubectl get
  • команда кubectl get
  • отладка Kubernetes

 

Если все подсистемы, развертывания и наборы реплик запущены и находятся в состоянии готовности, значит, Trino развернут успешно.

Примечание

В отличие от некоторых приложений Kubernetes, где лучше иметь много небольших подов, Trino лучше работает с меньшим количеством подов, каждый из которых имеет больше доступных ресурсов. Мы настоятельно рекомендуем избегать размещения нескольких подов Trino на одном физическом хосте, чтобы избежать конкуренции за ресурсы.

 

Обработка запросов

Все поды, в которых запущены контейнеры Trino, работают в частной сети внутри Kubernetes. Чтобы получить к ним доступ, в частности к координатору, необходимо создать туннель между подом-координатором и Вашим компьютером. Это можно сделать, выполнив команды, созданные при установке.

  1. Создайте туннель от клиента к службе координатора.
kubectl port-forward svc/trino 8080:8080

 

Теперь Вы можете подключиться к координатору Trino: http://localhost:8080.

 

  1. Для того, чтобы подключиться к Trino, Вы можете использовать интерфейс CLI, клиент JDBC или любые другие клиенты. Например, загрузите интерфейс CLI и подключитесь к Trino в ходе новой сессии.
trino --server http://localhost:8080

 

  1. Используя данные каталога tpch, составьте и выполните запрос к таблице nation с помощью схемы tiny:

<>4.5.6.7.8.9.10.11.12.

Протестируйте свой кластер с помощью других запросов.

 

 

  • Закончив работу, введите в CLI.команду quit
  • Отключите туннель к поду-координатору. Эта команда доступна только во время работы процесса kubectl, поэтому Вы можете просто «убить» процесс kubectl, который перенаправляет порт. В большинстве случаев это означает нажатие CTRL + C в терминале, где запущена команда port-forward.

 

Настройка

Helm Chart использует образ контейнера Trino. Образ Docker уже содержит конфигурацию по умолчанию для начала работы, а также некоторые каталоги, позволяющие хорошо изучить Trino. Kubernetes позволяет имитировать традиционное развертывание, предоставляя конфигурацию в файлах YAML. Перед обновлением значений важно понять все тонкости настройки файлов, JVM и каталога свойств.

 

Создание своей собственной конфигурации YAML

Когда Вы используете свою собственную конфигурацию YAML Kubernetes, Вы переопределяете только те значения, которые указали сами. Остальные свойства используют значения по умолчанию. Добавьте файл example.yaml со следующей конфигурацией:

image:
  tag: "462"
server:
  workers: 3
coordinator:
  jvm:
    maxHeapSize: "8G"
worker:
  jvm:
    maxHeapSize: "8G"

 

Эти значения выше, чем значения по умолчанию, они позволяют Trino использовать больше памяти и выполнять более сложные запросы. Если значения слишком высоки, Kubernetes может не успеть запланировать некоторые поды Trino.

  • .image.tag установлено значение текущей версии, 462. Установите другое значение, если Вам необходимо использовать другую версию Trino. По умолчанию используется последняя версия. Использование latest приводит к публикации новой версии Trino с каждым релизом и последующим развертыванием Kubernetes..
  • .server.workers установлено на 3. Это значение задает количество рабочих узлов, в данном случае развернуты координатор и три рабочих узла.
  • .coordinator.jvm.maxHeapSize установлено на 8Гб. Устанавливает максимальный размер кучи в JVM координатора.
  • .worker.jvm.maxHeapSize  установлен на 8Гб. Устанавливает максимальный размер кучи в JVM рабочего узла.

 

Важно!

Некоторые параметры памяти требуют тщательной настройки, так как установка некоторых значений, выходящих за пределы диапазона максимального размера кучи, приведет к сбою при запуске Trino.

 

Примечание:

Хотя в этом документе для обозначения конфигурационного файла Kubernetes используется example.yaml, Вам следует использовать более четкие рекомендации по наименованию кластера и развертывания, которыми Вы управляете. Например, cluster-example-trino-etl.yaml может относиться к развертыванию Trino для кластера, используемого в основном для запросов extract-transform-load, развернутого на кластере Kubernetes.

 

Добавление каталога

Добавление пользовательских каталогов является достаточно распространенной практикой. Это можно сделать, добавив значения в свойство catalogs в файле example.yaml.

catalogs:
  lakehouse: |-
    connector.name=iceberg
    hive.metastore.uri=thrift://example.net:9083
  rdbms: |-
    connector.name=postgresql
    connection-url=jdbc:postgresql://example.net:5432/database
    connection-user=root
    connection-password=secret
  tpch: |-
    connector.name=tpch
    tpch.splits-per-node=4

 

Так Вы добавите в конфигурацию развертывания Kubernetes сразу два каталога -  lakehouse и rdbms.

 

Запуск локального кластера Kubernetes с помощью kind

Для локального развертывания рекомендуем использовать kind (Kubernetes в Docker).

Для запуска kind в своей системе следуйте следующему алгоритму действий:

  1. kind работает на Docker, поэтому в первую очередь проверьте, установлен ли у Вас Docker:
docker --version

 

Если команда не сработала, установите Docker, следуя  инструкции по установке Docker.

 

  1. Установите kind.  Следуйте инструкции по установке kind.
  2. Запустите кластер Kubernetes в kind с помощью следующей команды:
kind create cluster --name trino

 

Примечание

Параметр name является необязательным, но используется для демонстрации того, как в последующих командах будут применяться имена. Если параметр не добавлен, имя кластера по умолчанию - kind. Используйте trino, чтобы подчеркнуть работу именно на этом кластере.

 

  1. Проверьте, что kubectl работает в соответствие с правильным кластером Kubernetes. 
kubectl cluster-info --context kind-trino

 

Если несколько кластеров Kubernetes настроены в соответствие с ~/.kube/config, необходимо передать параметр context командам kubectl. Так Вы сможете работать внутри локального кластера kind . Если этот параметр не установлен, kubectl будет использовать контекст по умолчанию.  Обратите внимание на то, что контекст – это имя кластера с префиксом kind-. Теперь Вы сможете увидеть все объекты Kubernetes , работающем в Вашем кластере kind .

 

  1. Установите Trino, следуя алгоритму запуска Trino с помощью Helm. При выполнении команды kubectl get all добавьте параметр context .
kubectl get all --context kind-trino
 
  1. Обработайте несколько запросов, следуя инструкции по обработке запросов.
<>7.

 

Чтобы убедиться в том, что все получилось, можно выполнить следующую команду kubectl. Она позволит Вам  убедиться в том, что никаких объектов Kubernetes, связанных с кластером Trino, не осталось.

kubectl get all

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Trino в контейнере Docker
Следующая статья →
Веб-интерфейс Trino

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Группа компаний «Невский кондитер» основана в 1996 году в Санкт-Петербурге и на сегодняшний день является одним из крупнейших производителей кондитерских изделий в России.

     

  • KazanExpress — торговая площадка, на которой представлены товары с бесплатной доставкой за один день в более, чем 70 городах России. Аналитическое решение на базе платформы данных Yandex Cloud позволило компании обеспечить демократизацию данных. Результат — принятие обоснованных решений на всех уровнях, увеличение лояльности партнеров и повышение прозрачности бизнеса.

    Мониторинг ключевых метрик в реальном времени минимизировал недополученную прибыль и обеспечил рост прибыльных направлений, а возможности геоаналитики сервиса Yandex DataLens помогли за короткое время проанализировать локации для открытия более 90 ПВЗ в 25 городах России и заложить основу для роста компании.

  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  • ООО "Интернэшнл Ресторант Брэндс" – это крупнейший франчайзинговый партнер компании Yum! Brands Russia & CIS в России, отвечающий за рост и развитие бренда KFC на территории РФ. На сегодняшний день у компании более 350 ресторанов. Ежедневно в рестораны приходит 200 000+ гостей.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.