Support Questions
Find answers, ask questions, and share your expertise

How do I ensure that service is installed on a particular node via ambari REST API?

I want to install 'Zeppelin' service via ambari REST API and have Zeppelin server running on one particular node. How do I do it?

1 ACCEPTED SOLUTION

Accepted Solutions

Contributor

Could you please try :

/api/v1/clusters/clusterName/hosts/hostName/host_components/componentName;

adding service and hostname in the request body

{"{SERVICE}", serviceName, "{HOST}", hostName}

This article has sample calls that would walk you through the process: https://cwiki.apache.org/confluence/display/AMBARI/Adding+a+New+Service+to+an+Existing+Cluster

Hope this helps.

View solution in original post

2 REPLIES 2

Contributor

Could you please try :

/api/v1/clusters/clusterName/hosts/hostName/host_components/componentName;

adding service and hostname in the request body

{"{SERVICE}", serviceName, "{HOST}", hostName}

This article has sample calls that would walk you through the process: https://cwiki.apache.org/confluence/display/AMBARI/Adding+a+New+Service+to+an+Existing+Cluster

Hope this helps.

View solution in original post

Thanks @dbalasundaran for pointing to the article. This works for me

There is one caveat in this though,

If your cluster is kerberos enabled, then there is one more step required before installing the service in last step:

Send a POST request to "/credentials/kdc.admin.credential" with data as '{ "Credential" : { "principal" : "user@EXAMPLE.COM", "key" : "password", "type" : "temporary" } }'