Запуск нескольких преобразований Kettle на одной JVM

Мы хотим использовать pan.sh для выполнения нескольких преобразований чайника. Изучив сценарий, я обнаружил, что он внутренне вызывает сценарий spo.sh, который выполняется в PDI. Теперь проблема в том, что каждый раз, когда запускается новое преобразование, создается отдельная JVM для его выполнения (вызывается через файл .bat), однако я хочу сгруппировать их, чтобы использовать одну JVM для преодоления ограничений памяти, которые несколько JVM помещают в пакет. сервер.

Может ли кто-нибудь посоветовать мне, как я могу этого достичь, или поделится со мной документацией / ресурсами.

Спасибо за хорошую работу.


person Explorer    schedule 08.02.2016    source источник
comment
Можно ли сгруппировать преобразования в одно задание и запустить его с помощью Kitchen.sh?   -  person Brian.D.Myers    schedule 08.02.2016
comment
Спасибо, Брайан, нет, мы выполняем пакетную обработку, и каждое преобразование имеет некоторые внешние зависимости, поэтому их нельзя сгруппировать вместе.   -  person Explorer    schedule 09.02.2016
comment
Хм, не могли бы вы подробнее рассказать об этих зависимостях? А о скольких пакетах / преобразованиях идет речь? Возможно, вы захотите обновить свой вопрос этой информацией.   -  person Brian.D.Myers    schedule 09.02.2016
comment
@Novice, вам нужно запускать эти преобразования одновременно? Если нет, то ответ Брайана - это то, что вам нужно - просто запустите все свои преобразования последовательно в одном задании.   -  person Andrey Khayrutdinov    schedule 09.02.2016
comment
@Novice Я также согласен с ответом Брайана и Андрея. Вы можете сгруппировать все файлы .ktr в один файл .kjb. Это запустит задание с использованием одной JVM. В случае наличия зависимости вы можете запускать файлы .ktr параллельно или использовать условные шаги для управления потоком ваших файлов .ktr.   -  person Rishu Shrivastava    schedule 09.02.2016
comment
Спасибо всем за ответ. @ Brian.D.Myers Мы ежедневно выполняем тысячи преобразований, и в основном зависимости похожи на то, прибыл исходный файл или нет, загрузка таблицы выполнена или нет, зависимости от другого преобразования (которое может выполняться в каком-либо другом инструменте), зависимости от некоторые скрипты и т. д. Мы используем инструмент планирования для планирования и управления зависимостями.   -  person Explorer    schedule 09.02.2016
comment
AFAIK, все, что вы можете сделать, это попытаться передать некоторые из тестов условий в инструмент планирования. Таким образом, вы запускаете преобразование PDI только в том случае, если знаете, что оно может выполняться. Затем следите за ресурсами вашего сервера на предмет скачков использования. Возможно, вам придется соответствующим образом скорректировать свое расписание.   -  person Brian.D.Myers    schedule 10.02.2016


Ответы (1)


Используйте Carte. Это как раз то, для чего это нужно. Вы можете запустить сервер (на локальном компьютере, если хотите), а затем отправить на него свои задания. Одна JVM, одна куча, общий ресурс.

Преимуществом этого является масштабируемость, поэтому, когда ваш ящик становится слишком загруженным, просто добавьте еще один, также используя carte, и начните отправлять некоторые задания на этот другой сервер.

Здесь есть старый, но все еще действующий блог:

http://diethardsteiner.blogspot.co.uk/2011/01/pentaho-data-integration-remote.html

А также doco на сайте pentaho.

Запуск сервера очень прост:

carte.sh <hostname> <port>

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

person Codek    schedule 10.02.2016
comment
Спасибо @Codek за ваш ответ. Есть ли способ использовать PDI как Carte? Если я использую сервер Carte, я не смогу использовать JVM, доступную на сервере PDI, а PDI будет просто работать как посредник между планировщиком и Carte. - person Explorer; 10.02.2016
comment
эээ? Не понимаю, что ты имеешь в виду. Вы можете запустить carte из той же установки, где вы запускаете PDI. Вы используете сервер DI? Если да, то у вас уже есть сервер карт! - person Codek; 10.02.2016