Perfect, thanks Yusaku!
On Wed, Oct 9, 2013 at 10:20 AM, Yusaku Sako <[email protected]> wrote: > Christian, > > For operating upon multiple components on multiple hosts at the same > time, you can do something like the following: > > PUT /clusters/{cluster}/host_components > > "RequestInfo": { > "context": "Start Components", > "query": > "HostRoles/component_name.in > (GANGLIA_MONITOR,HBASE_REGIONSERVER,DATANODE,TASKTRACKER,NODEMANAGER)&HostRoles/state=INSTALLED&HostRoles/ > host_name.in(host-a,host-b,host-c) > }, > "Body": { > "HostRoles": { "state": "STARTED" } > } > > That's exactly what Ambari Web does it when adding new hosts. > > Yusaku > > On Tue, Oct 8, 2013 at 1:37 PM, Christian Smith > <[email protected]> wrote: > > Hi Tom, > > > > Sorry maybe I wasn't clear... So above is what I'm currently able to do, > > however its slow when I add multiple hosts to a cluster as I need a > request > > per host, per component. > > > > I have a cluster with hosts A, B & C already installed and started. I > add > > hosts D, E & F to the cluster with datanode and tasktracker components. > I > > then want to set the services/components just on hosts D, E & F to > > INSTALLED, then STARTED, hopefully with a single request. > > > > When I first install the cluster I can do a PUT to the following URI to > > change all services states from INIT to INSTALLED, so I was hoping there > was > > some way to do the same, but for a subset of hosts. > > > > Thanks again, > > Christian > > > > > > On Wed, Oct 9, 2013 at 9:22 AM, Tom Beerbower < > [email protected]> > > wrote: > >> > >> Hi Christian, > >> > >> If I understand correctly you want to set the state of a component on a > >> specific host. If so, here is an example from the docs ... > >> > >> Start the NAMENODE component by updating its state to 'STARTED'. > >> > >> PUT api/v1/clusters/c1/hosts/hostname/host_components/NAMENODE > >> > >> { > >> "HostRoles":{ > >> "state":"STARTED" > >> } > >> } > >> > >> > >> 202 Accepted > >> { > >> "href" : > >> "http://your.ambari.server:8080/api/v1/clusters/c1/requests/12", > >> "Requests" : { > >> "id" : 12, > >> "status" : "InProgress" > >> } > >> } > >> > >> > >> Thanks, > >> Tom > >> > >> > >> > >> On 10/8/13 4:13 PM, Christian Smith wrote: > >>> > >>> Hi, > >>> > >>> I have a scenario where I have an existing cluster with all the > services > >>> installed and started. I then add one or more slaves to the existing > >>> cluster. > >>> > >>> I'm wondering if there' s an easy way for me to set the > service/component > >>> states to INSTALLED then STARTED just for the new hosts? When > installing > >>> the cluster I use something like PUT state=INSTALLED to > >>> /api/v1/clusters/c1/services?ServiceInfo/state=INIT, but obviously I > can't > >>> use this on a running cluster. > >>> > >>> I've tried various predicates like selecting just the hostnames I need > >>> for a component, but the predicate isn't supported. > >>> > >>> For example, this fails > >>> > >>> > >>> > /api/v1/clusters/c1/services/HDFS/components/DATANODE?host_components/HostRoles/host_name=my-hostname > >>> > >>> I know I can iterate through each host, but this is slow... > >>> > >>> Thanks in advance, > >>> Christian > >> > >> > >> > >> -- > >> CONFIDENTIALITY NOTICE > >> NOTICE: This message is intended for the use of the individual or entity > >> to which it is addressed and may contain information that is > confidential, > >> privileged and exempt from disclosure under applicable law. If the > reader of > >> this message is not the intended recipient, you are hereby notified > that any > >> printing, copying, dissemination, distribution, disclosure or > forwarding of > >> this communication is strictly prohibited. If you have received this > >> communication in error, please contact the sender immediately and > delete it > >> from your system. Thank You. > > > > > > -- > CONFIDENTIALITY NOTICE > NOTICE: This message is intended for the use of the individual or entity to > which it is addressed and may contain information that is confidential, > privileged and exempt from disclosure under applicable law. If the reader > of this message is not the intended recipient, you are hereby notified that > any printing, copying, dissemination, distribution, disclosure or > forwarding of this communication is strictly prohibited. If you have > received this communication in error, please contact the sender immediately > and delete it from your system. Thank You. >
