Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

How to track "HDP installation status using Ambari Blueprints"

Solved Go to solution
Highlighted

How to track "HDP installation status using Ambari Blueprints"

Super Guru

I know we can track installation status using below API call or from directly using Ambari UI.

curl -H "X-Requested-By: ambari" -X GET -u admin:admin http://<ambari-hostname>:8080/api/v1/clusters/<cluster-name>/requests/

Is there any other efficient way to track the status of installation in an automated way ?

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Re: How to track "HDP installation status using Ambari Blueprints"

When I forked structor to add Blueprints support, I just used the API call in a while loop:

ProgressPercent=`curl -s --user admin:admin -H 'X-Requested-By:mycompany' -X GET http://<ambari-hostname>:8080/api/v1/clusters/<cluster-name>/requests/1 | grep progress_percent | awk '{print $3}' | cut -d . -f 1`
echo " Progress: $ProgressPercent"

while [[ `echo $ProgressPercent | grep -v 100` ]]; do
  ProgressPercent=`curl -s --user admin:admin -H 'X-Requested-By:mycompany' -X GET http://<ambari-hostname>:8080/api/v1/clusters/<cluster-name>/requests/1 | grep progress_percent | awk '{print $3}' | cut -d . -f 1`
  tput cuu1
  echo " Progress: $ProgressPercent %"
  sleep 2
done
echo "Cluster build is complete."

View solution in original post

7 REPLIES 7
Highlighted

Re: How to track "HDP installation status using Ambari Blueprints"

Mentor
@Kuldeep Kulkarni

you can use command line tools like pdsh or some configuration management tool like ansible and tail /var/log/messages for installed RPMs, alternatively, you can run command ps aux | grep yum and see what's being installed as well.

Highlighted

Re: How to track "HDP installation status using Ambari Blueprints"

Mentor

@Kuldeep Kulkarni you can also poke around in the ambari database for status installed but that's essentially the same as using API only much more intrusive.

Highlighted

Re: How to track "HDP installation status using Ambari Blueprints"

When I forked structor to add Blueprints support, I just used the API call in a while loop:

ProgressPercent=`curl -s --user admin:admin -H 'X-Requested-By:mycompany' -X GET http://<ambari-hostname>:8080/api/v1/clusters/<cluster-name>/requests/1 | grep progress_percent | awk '{print $3}' | cut -d . -f 1`
echo " Progress: $ProgressPercent"

while [[ `echo $ProgressPercent | grep -v 100` ]]; do
  ProgressPercent=`curl -s --user admin:admin -H 'X-Requested-By:mycompany' -X GET http://<ambari-hostname>:8080/api/v1/clusters/<cluster-name>/requests/1 | grep progress_percent | awk '{print $3}' | cut -d . -f 1`
  tput cuu1
  echo " Progress: $ProgressPercent %"
  sleep 2
done
echo "Cluster build is complete."

View solution in original post

Highlighted

Re: How to track "HDP installation status using Ambari Blueprints"

Rising Star

This approach should work fine, but I would suggest a refinement that may improve performance somewhat, and will also make the returned status play load quite a bit smaller in size:

If you use the partial response syntax provided in the Ambari REST API, you can filter out much of the data returned in the request resource returned by the call listed above.

An example of using the partial response syntax is below:

http://ambari-hostname:ambari-port-number/api/v1/clusters/clusterone/requests/1?fields=Requests/comp...

The "fields" query parameter is used to limit the fields returned from the request resource. The fields I've mentioned here are the set I use, but you can also check the other properties returned by the resource, if a particular property is more straightforward to use for this type of monitoring.

I use this syntax quite a bit when I want to monitor the status of a Blueprint deployment.

Highlighted

Re: How to track "HDP installation status using Ambari Blueprints"

New Contributor

I wrote a python script that does the same thing. I noticed that immediately after I install the cluster hostmap to kickstart the install, and then check the request it returns, I get a 100% `progress_percent`. I had to introduce a delay (I set it to 5 seconds) before I start polling the request API.

Re: How to track "HDP installation status using Ambari Blueprints"

This recently started happening in my scripts too and I hadn't figured out why. Thanks for the tip!

Highlighted

Re: How to track "HDP installation status using Ambari Blueprints"

Expert Contributor

If you want to use a standard tool rather than managing the API/HTTP calls via scripts, you can use Ansible.

We've enabled such a feature on the Rackspace deployment playbooks: https://github.com/rackerlabs/ansible-hadoop/blob/master/playbooks/roles/ambari-server/tasks/main.ym...

I've create a gist only for that function: https://gist.github.com/alexandruanghel/68a16994028563be12cee4e3b93f7e89 if you want to use it straight away.

So once you download the statuscheck.yml just set the variables and run it:

AMBARI_HOST=127.0.0.1
AMBARI_PASSWORD=admin
CLUSTER_NAME=hadoop-poc
ansible-playbook -e "ansible_nodename=$AMBARI_HOST cluster_name=$CLUSTER_NAME ambari_password=$AMBARI_PASSWORD wait_timeout=1800" statuscheck.yml
Don't have an account?
Coming from Hortonworks? Activate your account here