Support Questions

Find answers, ask questions, and share your expertise

How to setup High Availability for Ambari server?

avatar
 
1 ACCEPTED SOLUTION

avatar

High availability for Ambari Server can be achieved by enabling a rapid failover mechanism (an active-passive setup) through an external monitoring tool e.g. Upstart, Supervisor or some other Daemon tool.

Customers deploys two (2) Ambari servers configured exactly same having same Ambari property files. One of the server is kept active while the other is stopped.

The responsibilities of the external monitoring service are:

  • Ensure there is only one active instance of Ambari Server
  • Monitor the active instance and if it’s down then make a decision to either bring the same instance back up or the replacement instance
  • Ensure that the agents are re-configured to communicate with the active Ambari Server instance

Requirements for HA

  • The Ambari DB must be an external DB instance (do not use embedded postgres)
  • Both Ambari Server instances must be configured similarly (options available via ambari-server setup command)
  • Appropriate load-balancer setup to route client requests to the active Ambari Server instance

View solution in original post

7 REPLIES 7

avatar

@smohanty@hortonworks.com had answered this recently:

"At this point there is no plan to inherently support an active-passive deployment. There are some work-items to make it easier to have an external logic enable failover such as configuring Ambari Agents to take a list of hostnames for the servers and select the active one to auto-register"

avatar

High availability for Ambari Server can be achieved by enabling a rapid failover mechanism (an active-passive setup) through an external monitoring tool e.g. Upstart, Supervisor or some other Daemon tool.

Customers deploys two (2) Ambari servers configured exactly same having same Ambari property files. One of the server is kept active while the other is stopped.

The responsibilities of the external monitoring service are:

  • Ensure there is only one active instance of Ambari Server
  • Monitor the active instance and if it’s down then make a decision to either bring the same instance back up or the replacement instance
  • Ensure that the agents are re-configured to communicate with the active Ambari Server instance

Requirements for HA

  • The Ambari DB must be an external DB instance (do not use embedded postgres)
  • Both Ambari Server instances must be configured similarly (options available via ambari-server setup command)
  • Appropriate load-balancer setup to route client requests to the active Ambari Server instance

avatar

There is no inherent support. What I described is what some users have implemented.

avatar
Super Collaborator

Instead of using an external monitoring tool such as Upstart or Supervisor, I would recommend using a cluster software solution.

In the past, I have used (not for Hadoop) with good success the Pacemaker software (http://clusterlabs.org). It not only detects some failure, but also automatically raises up the standby daemon, can handle dependencies (first recovering the database, then the application), define some fencing, do placement policies (avoiding having the database and the application on the same node for instance)...

avatar

This may be done in Ambari 2.2 or 2.3, depending on when the community decides to work on it.

https://issues.apache.org/jira/browse/AMBARI-4016 https://issues.apache.org/jira/browse/AMBARI-7896

avatar
Expert Contributor

@Alejandro Fernandez @smohanty

Has there been any development during the past 9 months? Is HA for Ambari (maybe also active-active) supported in Ambari 2.2.?

avatar
New Contributor

This is kindof an important feature. it's been 2 years now and still nothing 😞