Балансировка нагрузки Pentaho Carte

Есть ли простой способ удаленно отправлять задания на главный сервер Carte и делегировать каждое задание другому подчиненному серверу?

Из того, что я прочитал, мой единственный вариант готовой балансировки нагрузки в Pentaho — настроить конфигурацию кластеризации на этапах моего преобразования, а затем шаги преобразования, содержащие эту конфигурацию, будут использовать определенные подчиненные серверы. Таким образом, у меня может быть «своего рода» подход к балансировке нагрузки, но на самом деле это распараллеливание отдельных заданий.

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

заранее спасибо


person orion_kid    schedule 21.12.2015    source источник


Ответы (1)


Я надеюсь, что мой ответ поможет вам, хотя я не специалист, а такой же пользователь Pentaho, который просто пытается сделать то же самое, что вы описали, и мой опыт пока таков:

(если кто-то обнаружит ошибку в моем ответе, дайте мне знать. Я тоже хочу научиться =D)

Что такое кластеры PDI? – Масштабируемое решение

Кластеры Pentaho Data Integration отлично подходят (1) для разбиения огромных преобразований, которые потребляют много ЦП/памяти, на более мелкие фрагменты и (2) для ускорения времени выполнения за счет продуманной конструкции или, по крайней мере, для запуска на обычном оборудовании (не огромный сервер с 24 процессорами и 256 ГБ оперативной памяти)

Есть ли способ автоматического распределения преобразований (циклического перебора) внутри кластера?

К сожалению, до сих пор я не мог сделать этого в своих экземплярах AWS. Я использую 3 EC2 в AWS для тестирования дистрибутива с некоторыми различными структурами:

  • Один ведущий, два подчиненных. Я отправил все записи преобразования для выполнения одним и тем же ведущим в надежде, что это будет выполнять циклический перебор между подчиненными и выполнять некоторые преобразования только тогда, когда подчиненные полны дел. Но этого не произошло, хозяин взял всю работу на себя, а рабы ничего не сделали. (то же самое происходит, если вы отправляете задание с параллельными преобразованиями для выполнения)
  • Три мастера с помощью эластичного балансировщика нагрузки. ELB от AWS — это отличный способ распределить запросы приложений из разных источников на все ваши инстансы EC2, и я подумал, что это может помочь мне распределить мою трансформацию по всем картам. машины (все мастера). Что ж, получается, что если запрос делает один и тот же хост, вам указывают на тот же экземпляр EC2. Поэтому каждый раз, когда я отправлял тестовое задание на выполнение, один случайный мастер принимал все запросы, а остальные просто сидели и ждали. Здесь нет хороших новостей.
  • Три мастера, маршрут 53. Маршрут 53 — это DNS-сервис AWS, который имеет особую возможность маршрутизировать запросы вашего веб-сайта или веб-приложения множеством различных способов. Один из них круговой. Но у меня возникла та же проблема, что и Elastic Load Balancer. Все проблемы достались одному случайному серверу, так что и здесь нет хороших новостей.

Возможное решение

Ну, это не кошмар, в котором вы не можете распределить свои преобразования на кучу других машин для выполнения. Вы действительно можете! Но ни Carte, ни Elastic Load Balance, ни Route 53 не сделают за вас круговой перебор. Итак, что вы делаете, так это просто добавляете все свои подчиненные серверы (или главные серверы) к своей работе, назначая разные подчиненные серверы для каждой трансформации. Это можно сделать на вкладке «Дополнительно», как на скриншоте:

Где выбрать удаленный сервер, на котором должно выполняться это преобразование

person MrMauricioLeite    schedule 02.01.2016
comment
Спасибо, что поделились своим опытом, это очень полезно. - person orion_kid; 28.01.2016