Acceldata
ODP

Last updated: Sep 24, 2026 22:15 UTC

Scheduler and Webserver High Availability for Airflow

This document describes how to configure High Availability (HA) for Apache Airflow Schedulers and Webservers in an ODP deployment. Scheduler HA improves reliability and fault tolerance, while Webserver HA ensures consistent UI access through a load balancer.


High Availability Support in ODP Airflow

ODP Airflow supports running multiple schedulers and webservers in an HA configuration.

  • During a fresh installation, users can choose to add multiple schedulers and webservers.
  • For an existing installation, additional scheduler or webserver components can be added via Ambari → Hosts → Add, and assigning the required roles.


Additional Configurations for Scheduler HA

The following configurations are recommended to ensure consistent and predictable behavior when running multiple schedulers.

Configure these settings in Advanced airflow-scheduler-site.

Required and Recommended Properties

In Advanced airflow-scheduler-site

use_job_schedule: True
  • Mandatory for Scheduler HA.
  • Enables consistent job scheduling across multiple schedulers.
deactivate_unknown_dags: False
  • Prevents schedulers from disabling DAGs managed by other schedulers.
parsing_processes: 4
  • Improves DAG parsing throughput through parallelism
scheduler_health_check_threshold: 90
  • Defines an HA-friendly scheduler liveness threshold (in seconds).


Additional Steps and Configurations for Webserver HA

For Webserver HA, deploying a Load Balancer in front of Airflow webservers is strongly recommended.

Ambari may not enforce all required configurations automatically in HA setups; therefore, the following settings should be verified and applied manually if necessary.

Webserver Configuration Updates

Update the following settings in Advanced airflow-webserver-site.

enable_proxy_fix: True
  • Required when Airflow is deployed behind a load balancer.
  • Ensures proper handling of X-Forwarded-* HTTP headers.

Load Balancer URL Configuration

Update the Load Balancer URL in the following locations.

In Advanced airflow-webserver-site

base_url: <Load Balancer URL for Airflow UI>

In Custom airflow-webserver-site

web_server_url: <Load Balancer URL for Airflow UI>

These values must point to the Load Balancer endpoint, not individual web server hosts.


HAProxy Setup for Airflow Webservers (Load Balancer)

The following example demonstrates configuring HAProxy as a load balancer for Airflow web servers on RHEL 8. Similar steps can be applied to Ubuntu or other Linux distributions.

Install HAProxy

yum install haproxy

HAProxy Configuration Example

Update /etc/haproxy/haproxy.cfg as shown below. Replace hostnames and ports with values from your Airflow deployment.

global
 log _dev_log local0
 log _dev_log local1 notice
 maxconn 50000
 daemon
 user haproxy
 group haproxy

defaults
 log global
 mode http
 option httplog
 option dontlognull
 timeout connect 5s
 timeout client 50s
 timeout server 50s

frontend http_front
 bind *:8080
 mode http
 default_backend airflow_web_backends

backend airflow_web_backends
 mode http
 balance roundrobin
 option httpchk GET _health
 server web1 poc1.acceldata.ce:8889 check
 server web2 poc2.acceldata.ce:8889 check

Info

Replace poc1.acceldata.ce and poc2.acceldata.ce with the actual hostnames and ports of your Airflow webservers.


Start HAProxy

sudo systemctl start haproxy