2016-06-07 1 views
1

일부 서비스 (이 경우 https://github.com/tzolov/elasticsearch-yarn-ambari-plugin과 같은)를 배치하기위한 Ambari 플러그인을 개발하고 싶습니다.Ambari 플러그인 개발

개발/디버깅에 대한 우수 사례를 요청하고 싶습니다.

현재 우리는 AMBARI_SERVER_SERVICE_PATH/services /에 새 파일을 삭제하고 복사합니다. ambari-agent stop && ambari-server stop && ambari-server reset --silent && ambari-server start && ambari-agent start과 같이 멋진 솔루션이 아닐 것 같습니다.

좋은 팁, 권장 사항, 링크가 있습니까?

답변

1

올바른 용어는 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를 개발할 때 찾을 수 있습니다.

+0

이 경우 ambar-server reset''' 유용한 정보도 발견했습니다. – Babu

+0

'ambari-server reset'은 유스 케이스를 해결하지만, 클러스터를 다시 프로비저닝해야하므로 상당히 오래 걸립니다. – cjackson