올바른 용어는 Ambari Custom Service이며 플러그인이 아닙니다.
다음 순서는 지금까지 사용자 지정 서비스를 개발할 때 내가 찾은 최상의 방법입니다. 사용자 정의 서비스 'FOO'를 개발하고 있다고 가정 해 보겠습니다.
1) 개발중인 스택에 foo 서비스의 압축을 풉니 다. 예를 들어.
tar -xzvf foo_service.tgz -C /var/lib/ambari-server/resources/stacks/HDP/2.4/services/FOO
2)를 다시 시작 ambari 서버 스택을 데리러
sudo ambari-server restart
3) 사용자 정의 서비스를 설치하려면 설치 마법사를 Ambari의 UI 서비스를 사용하여 변경 : 나는 HDP 2.4을 가정합니다.
4) 테스트 및 디버깅을 수행하고 사용자 지정 서비스 설명자 파일을 변경하십시오.
5) Ambari UI를 사용하여 서비스 및 해당 구성 요소를 모두 중지하십시오.
6) 아래 remove-service.sh
스크립트와 비슷한 것을 사용하여 Ambari에서 서비스를 제거하십시오.
7) 수정 된 서비스를 1 단계부터 다시 설치하십시오. Rinse and Repeat.
remove-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-server를 다시 시작한 다음 ambari rest API를 사용하여 서비스를 다시 설치해야합니다. 이 시나리오에서는 서비스 설치 마법사를 사용하여 다시 설치할 수 없습니다. 나머지 api를 사용하여 서비스를 다시 설치하는 방법에 대한 자세한 내용은 ambari wiki를 참조하십시오.
많은 유용한 정보는 Ambari Wiki에 사용자 지정 ambari 서비스와 ambari rest API를 개발할 때 찾을 수 있습니다.
이 경우 ambar-server reset''' 유용한 정보도 발견했습니다. – Babu
'ambari-server reset'은 유스 케이스를 해결하지만, 클러스터를 다시 프로비저닝해야하므로 상당히 오래 걸립니다. – cjackson