ambari-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Krzysztof Adamski <adamskikrzys...@gmail.com>
Subject Re: Start/stop all services programmatically
Date Thu, 09 Apr 2015 08:38:46 GMT
Still no luck.
The status is I can stop all components that were originally started
(excluding client components, thanks Sumit).
curl -u admin:admin -H "X-Requested-By: ambari" -i -X PUT -d
'{"RequestInfo":{"context":"Stop All Host Components"},"Body":{"
HostRoles":{"state":"INSTALLED"}}}' "
http://u1201.ambari.apache.org:8080/api/v1/clusters/c1/host_components?HostRoles/host_name=u1201.ambari.apache.org&HostRoles/state=STARTED
"

However I cannot start the components as client ones are complaining. I
wish there was a third state STOPPED. Any ideas how to make a one-liner to
start all hosts components excluding client? I was only able to make GET
working
curl -u admin:admin -H "X-Requested-By: ambari" -i -X GET "
http://ambari:8080/api/v1/clusters/HADOOP_LAB/components?ServiceComponentInfo/categry.in(MASTER,SLAVE)&host_components/HostRoles/host_name=host1&host_components/HostRoles/state=INSTALLED
"





On Thu, Apr 9, 2015 at 9:26 AM Krzysztof Adamski <adamskikrzysiek@gmail.com>
wrote:

> Couldn't make PUT working :(
>
> I see there is another option
>
> https://cwiki.apache.org/confluence/display/AMBARI/Restarting+host+components+via+the+API
>
>
> On Thu, Apr 9, 2015 at 8:34 AM Krzysztof Adamski <
> adamskikrzysiek@gmail.com> wrote:
>
>> almost there
>> Get works
>> curl -u admin:admin -H "X-Requested-By: ambari" -i -X GET "
>> http://ambari:8080/api/v1/clusters/HADOOP_LAB/components?
>> ServiceComponentInfo/categry.in(MASTER,SLAVE)&host_
>> components/HostRoles/host_name=host1&host_components/
>> HostRoles/state=INSTALLED"
>>
>>
>> On Thu, Apr 9, 2015 at 7:56 AM Krzysztof Adamski <
>> adamskikrzysiek@gmail.com> wrote:
>>
>>> That's it. A clever solution indeed.
>>>
>>> How about starting the services then? How to quickly exclude client
>>> components?
>>>  "message" : "java.lang.IllegalArgumentException: Invalid desired state
>>> for a client component"
>>>
>>> There is a filter like this
>>> ServiceComponentInfo/category.in(SLAVE,MASTER)
>>>
>>>
>>> On Thu, Apr 9, 2015 at 7:41 AM Sumit Mohanty <smohanty@hortonworks.com>
>>> wrote:
>>>
>>>>  You can try something like this ....
>>>>
>>>>
>>>>  curl -u admin:admin -H "X-Requested-By: ambari" -i -X PUT -d
>>>> '{"RequestInfo":{"context":"Stop All Host Components"},"Body":{"
>>>> HostRoles":{"state":"INSTALLED"}}}' "http://u1201.ambari.apache.or
>>>> g:8080/api/v1/clusters/c1/host_components?HostRoles/host_nam
>>>> e=u1201.ambari.apache.org&HostRoles/state=STARTED"
>>>>
>>>>
>>>>  Predicates such as "HostRoles/host_name=u1201.ambari.apache.org&
>>>> HostRoles/state=STARTED​" will help narrow down the choices.
>>>>
>>>>
>>>>  ------------------------------
>>>> *From:* Krzysztof Adamski <adamskikrzysiek@gmail.com>
>>>> *Sent:* Wednesday, April 08, 2015 10:11 PM
>>>> *To:* user@ambari.apache.org
>>>>
>>>> *Subject:* Re: Start/stop all services programmatically
>>>>  Hi Yusaku,
>>>>
>>>>  Many thanks for pointing me to the dependancies file. It would help a
>>>> lot.
>>>>
>>>>  The problem with the *stop all* command you sent is that this for all
>>>> services within the cluster and I want to do this explicitly on a host
>>>> basis to perform a rolling OS patching.
>>>> Another issue is that specifying *state:INSTALL *would result in
>>>> installing client components on the hosts where I do not want to have them
>>>> e.g. data nodes.
>>>> Unless I did something wrong.
>>>>
>>>>  Regards,
>>>> Krzysztof
>>>>
>>>>
>>>> On Thu, Apr 9, 2015 at 2:34 AM Yusaku Sako <yusaku@hortonworks.com>
>>>> wrote:
>>>>
>>>>>  Sorry, forgot to answer your second question regarding dependencies.
>>>>> Such dependencies are specified in a file called
>>>>> role_command_order.json as part of the stack defintion.
>>>>>
>>>>>  https://github.com/apache/ambari/blob/trunk/ambari-server/sr
>>>>> c/main/resources/stacks/HDP/2.0.6/role_command_order.json
>>>>>
>>>>>  If you try to start/stop all services in bulk, the command order
>>>>> rules will be followed automatically by the server.
>>>>>
>>>>>  Yusaku
>>>>>
>>>>>   From: Yusaku Sako <yusaku@hortonworks.com>
>>>>> Reply-To: "user@ambari.apache.org" <user@ambari.apache.org>
>>>>> Date: Wednesday, April 8, 2015 5:27 PM
>>>>> To: "user@ambari.apache.org" <user@ambari.apache.org>
>>>>> Subject: Re: Start/stop all services programmatically
>>>>>
>>>>>   Hi Krzysztof,
>>>>>
>>>>>  You can do everything that the UI does with the API.
>>>>> The best way to learn what API calls the UI is making is to use the
>>>>> browser's developer tool and watch the network traffic.
>>>>>
>>>>>  Stop all services:
>>>>> curl -i -uadmin:admin -H "X-Requested-By: ambari" -X PUT -d '
>>>>> {"RequestInfo":{"context":"Stop all services","operation_level":{"
>>>>> level":"CLUSTER","cluster_name":"ing_hdp"}},"Body":{"Service
>>>>> Info":{"state":"INSTALLED"}}}
>>>>> ' http://ambari:8080/api/v1/clusters/ing_hdp/services
>>>>>
>>>>>  Start all services:
>>>>> curl -i -uadmin:admin -H "X-Requested-By: ambari" -X PUT -d '
>>>>> {"RequestInfo":{"context":"Start all services","operation_level":{"
>>>>> level":"CLUSTER","cluster_name":"ing_hdp"}},"Body":{"Service
>>>>> Info":{"state":"STARTED"}}}
>>>>> ' http://ambari:8080/api/v1/clusters/ing_hdp/services
>>>>>
>>>>>  I hope this helps.
>>>>> Yusaku
>>>>>
>>>>>   From: Krzysztof Adamski <adamskikrzysiek@gmail.com>
>>>>> Reply-To: "user@ambari.apache.org" <user@ambari.apache.org>
>>>>> Date: Tuesday, April 7, 2015 12:15 AM
>>>>> To: "user@ambari.apache.org" <user@ambari.apache.org>
>>>>> Subject: Start/stop all services programmatically
>>>>>
>>>>>     Hello,
>>>>>
>>>>>  I am busy implementing a manual job to stop all hosts services via
>>>>> script before rebooting the OS. The examples I found in wiki are per
>>>>> service or component.
>>>>>
>>>>>  1. Is there any way to invoke the stop/start for all hosts
>>>>> components just like from a web interface?
>>>>> 2. How ambari determines the proper order for the services to
>>>>> start/stop e.g. first stop hiveserver before stopping mysql etc.
>>>>>
>>>>>  curl -s --user admin:admin -H "X-Requested-By: ambari" -X GET "
>>>>> http://ambari:8080/api/v1/clusters/ing_hdp/components/?Serv
>>>>> iceComponentInfo/category.in(SLAVE,MASTER)&host_components/H
>>>>> ostRoles/host_name=host1&fields=host_components/HostRoles/co
>>>>> mponent_name,host_components/HostRoles/state" | jq -r
>>>>> '[[.items[].host_components[].HostRoles.component_name]]|tostring' |
>>>>> sed -r 's/[\["]//g' | sed -r 's/[]]//g'
>>>>>
>>>>>   function stop(){
>>>>>
>>>>> curl -u admin:admin -i -H 'X-Requested-By: ambari' -X PUT -d
>>>>> '{"RequestInfo": {"context" :"Stop ‘"$1"’ via REST"}, "Body": {"HostRoles":
>>>>> {"state": "INSTALLED"}}}' http://ambari:8080/api/v1/clus
>>>>> ters/ing_hdp/hosts/host1/host_components/$1
>>>>>
>>>>> }
>>>>>
>>>>> Thanks for any guide.
>>>>>
>>>>

Mime
View raw message