Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]

Community Articles

Find and share helpful community-sourced technical articles.
Announcements
Share your experience with Cloudera on G2 and get a $25 Amazon Gift card.
Hi, I'm CLEO! Something exciting is coming to the Community. Stay Tuned!
Labels (1)
avatar

In a browser put in:

http://<AMBARI-HOST>:8080/api/v1/clusters/<CLUSTER-NAME>/requests/

Find the highest reqest number in the output. Now, we can go to each request by pasting in the number of the request, an example would be:

http://<AMBARI-HOST>:8080/api/v1/clusters/<CLUSTER-NAME>/requests/110

The output should look like:

{ 
"href" : "http://mon-orlan:8080/api/v1/clusters/test/requests/110", 
"Requests" : { 
"aborted_task_count" : 0, 
"cluster_name" : "test", 
"completed_task_count" : 3, 
"create_time" : 1444340395849, 
"end_time" : 1444340449936, 
"exclusive" : false, 
"failed_task_count" : 0, 
"id" : 110, 
"inputs" : "{}", 
"operation_level" : "SERVICE", 
"progress_percent" : 100.0, 
"queued_task_count" : 0, 
"request_context" : "Restart all components with Stale Configs for HIVE", 
..... 

If that is not your hung operation, go back one by one from the highest request number. What we are looking for is the request context matches your hung Operation, that is the one we want to abort. Once you find that request ID, then go to the ambari server command line as root and do:

curl -u admin:admin -i -H "X-RequestedBy:ambari" -X PUT -d '{"Requests":{"request_status":"ABORTED","abort_reason":"Aborted by user"}}' http://localhost:8080/api/v1/clusters/<CLUSTER_NAME>/requests/<REQUEST_ID>;

8,567 Views
Comments
avatar
Super Collaborator

We are trying to abort one request from ambari-server with this command but it is not working it seems.

Getting following exception in ambari-server:

11:28:25,579  WARN [Thread-20] ActionScheduler:189 - Exception received
javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.BatchUpdateException: Batch entry 0 UPDATE request SET end_time = 1463135305576 WHERE (request_id = 433) was aborted.  Call getNextException to see the cause.
Error Code: 0
Call: UPDATE request SET end_time = ? WHERE (request_id = ?)
   bind => [2 parameters bound]
   at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:102)
   at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:63)
   at org.apache.ambari.server.orm.AmbariJpaLocalTxnInterceptor.invoke(AmbariJpaLocalTxnInterceptor.java:91)
   at org.apache.ambari.server.actionmanager.ActionDBAccessorImpl.endRequest(ActionDBAccessorImpl.java:302)
   at org.apache.ambari.server.actionmanager.ActionDBAccessorImpl.abortOperation(ActionDBAccessorImpl.java:150)
   at org.apache.ambari.server.actionmanager.ActionScheduler.abortOperationsForStage(ActionScheduler.java:636)
   at org.apache.ambari.server.actionmanager.ActionScheduler.processCancelledRequestsList(ActionScheduler.java:829)
   at org.apache.ambari.server.actionmanager.ActionScheduler.doWork(ActionScheduler.java:203)
   at org.apache.ambari.server.actionmanager.ActionScheduler.run(ActionScheduler.java:184)
   at java.lang.Thread.run(Thread.java:745)
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.4.0.v20120608-r11652): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.BatchUpdateException: Batch entry 0 UPDATE request SET end_time = 1463135305576 WHERE (request_id = 433) was aborted.  Call getNextException to see the cause.
Error Code: 0
avatar
Expert Contributor

In case ambari API doesn't help. You can use following SQL queries to abort hung/queued/pending operations directly from ambari database.

 

1) Stop Ambari-Server

 

ambari-server stop

 

2) Take backup of ambari database before making any changes to ambari db

3) Check IN_PROGRESS, QUEUED and PENDING operations.

 

ambari=> select task_id,role,role_command from host_role_command where status='IN_PROGRESS';
ambari=> select task_id,role,role_command from host_role_command where status='QUEUED' limit 100;
ambari=> select task_id,role,role_command from host_role_command where status='PENDING'; 

 

4) Abort Operations

 

ambari=> update host_role_command set status='ABORTED' where status='QUEUED';
ambari=> update host_role_command set status='ABORTED' where status='PENDING';
ambari=> update host_role_command set status='ABORTED' where status='IN_PROGRESS';

 

5) Start ambari-server

 

ambari-server start

 

 

 

Version history
Last update:
‎12-08-2015 05:12 PM
Updated by:
Contributors