Правильный термин — Пользовательская служба Ambari, а не плагин.
Следующая последовательность — лучший подход, который я нашел до сих пор в разработке пользовательских сервисов. Допустим, вы разрабатываете пользовательский сервис «FOO».
1) Извлеките свой сервис foo в стек, для которого вы разрабатываете. Для этого напр. Я предполагаю HDP 2.4:
tar -xzvf foo_service.tgz -C /var/lib/ambari-server/resources/stacks/HDP/2.4/services/FOO
2) Перезапустите амбари-сервер, чтобы принять изменения стека.
sudo ambari-server restart
3) Используйте мастер установки службы пользовательского интерфейса Ambari для установки пользовательской службы.
4) Проведите тестирование и отладку, внесите любые изменения в файлы пользовательских дескрипторов службы.
5) Остановите службу и все ее компоненты с помощью пользовательского интерфейса Ambari.
6) Удалите свой сервис из Ambari, используя что-то похожее на скрипт remove-service.sh
ниже.
7) Переустановите модифицированный сервис, начиная с шага 1. Промойте и повторите.
удалить-service.sh:
#!/usr/bin/env bash
host=localhost
cluster=hdp
port=8080
user=admin
password='admin'
echo "Deleting the FOO service..."
curl -i -H "X-Requested-By: ambari" -u $user:$password -X DELETE http://$host:$port/api/v1/clusters/$cluster/services/FOO
ПРИМЕЧАНИЕ. Иногда этот подход не работает, если не удается правильно установить пользовательскую службу. В этом случае вам иногда приходится вносить исправления в файлы дескрипторов, перезапускать сервер ambari, а затем использовать API-интерфейс ambari rest для переустановки службы. Использование мастера установки службы для переустановки в этом сценарии не работает. См. вики ambari для получения более подробной информации о том, как использовать остальные API для переустановки службы.
Много полезной информации о разработке пользовательских служб ambari и API для отдыха ambari можно найти на Ambari Wiki.
person
cjackson
schedule
10.06.2016