Bird
Raised Fist0
Apache Airflowdevops~20 mins

High availability configuration in Apache Airflow - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Airflow HA Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What is the main purpose of enabling high availability in Airflow?
Choose the best explanation for why high availability (HA) is configured in an Airflow environment.
ATo reduce the number of DAGs that can be executed simultaneously.
BTo ensure the Airflow scheduler and webserver continue running without interruption during failures.
CTo limit access to the Airflow UI to only one user at a time.
DTo disable task retries and speed up execution.
Attempts:
2 left
💡 Hint
Think about what happens if a server running Airflow components crashes.
💻 Command Output
intermediate
1:30remaining
Output of checking Airflow scheduler status in HA mode
You run the command airflow scheduler --status on a multi-scheduler HA setup. What output indicates that the schedulers are running correctly in HA mode?
AScheduler is running with leader election enabled.
BScheduler is running but no DAGs are loaded.
CScheduler failed to start due to port conflict.
DScheduler is running without leader election.
Attempts:
2 left
💡 Hint
In HA mode, schedulers coordinate to avoid duplicate task execution.
❓ Configuration
advanced
2:00remaining
Correct configuration for Airflow high availability scheduler
Which configuration snippet correctly enables high availability for the Airflow scheduler in airflow.cfg?
A
[core]
scheduler_ha_enabled = true
heartbeat_sec = 5
B
[scheduler]
enable_ha = yes
heartbeat_interval = 10
C
[scheduler]
scheduler_ha = enabled
heartbeat = 5
D
[scheduler]
enable_scheduler_ha = True
scheduler_ha_heartbeat_sec = 5
Attempts:
2 left
💡 Hint
Check the exact parameter names under the scheduler section.
❓ Troubleshoot
advanced
2:00remaining
Troubleshooting Airflow HA scheduler leader election failure
In an Airflow HA setup, the schedulers fail to elect a leader and no tasks run. Which is the most likely cause?
AThe webserver port is blocked by firewall.
BThe DAG files are missing from the scheduler nodes.
CThe metadata database is unreachable or misconfigured.
DThe Airflow UI authentication is disabled.
Attempts:
2 left
💡 Hint
Leader election depends on shared state in the metadata database.
🔀 Workflow
expert
3:00remaining
Order the steps to enable Airflow high availability for schedulers
Arrange the steps in the correct order to enable high availability for Airflow schedulers.
A1,2,3,4
B2,1,3,4
C1,3,2,4
D3,1,2,4
Attempts:
2 left
💡 Hint
Think about preparing shared resources before enabling features and deploying instances.

Practice

(1/5)
1. What is the main purpose of configuring high availability in Apache Airflow?
easy
A. To reduce the number of DAGs in the system
B. To keep Airflow running even if some components fail
C. To speed up the Airflow UI loading time
D. To limit the number of users accessing Airflow

Solution

  1. Step 1: Understand high availability concept

    High availability means the system keeps working even if parts fail.
  2. Step 2: Apply to Airflow context

    In Airflow, this means tasks and services continue running despite failures.
  3. Final Answer:

    To keep Airflow running even if some components fail -> Option B
  4. Quick Check:

    High availability = system stays up despite failures [OK]
Hint: High availability means no downtime during failures [OK]
Common Mistakes:
  • Confusing high availability with performance optimization
  • Thinking it limits users or DAGs
  • Assuming it only affects the UI
2. Which executor is commonly used in Airflow for high availability setups?
easy
A. SequentialExecutor
B. DebugExecutor
C. LocalExecutor
D. CeleryExecutor

Solution

  1. Step 1: Recall executor types in Airflow

    SequentialExecutor runs tasks one by one, LocalExecutor runs tasks locally in parallel.
  2. Step 2: Identify executor for distributed task handling

    CeleryExecutor uses workers and message brokers for distributed task execution, suitable for high availability.
  3. Final Answer:

    CeleryExecutor -> Option D
  4. Quick Check:

    Distributed task handling = CeleryExecutor [OK]
Hint: CeleryExecutor enables distributed task execution [OK]
Common Mistakes:
  • Choosing SequentialExecutor which is single-threaded
  • Confusing LocalExecutor with distributed execution
  • Selecting DebugExecutor which is for testing only
3. Given this Airflow configuration snippet for high availability, what is the role of Redis?
[celery]
broker_url = redis://localhost:6379/0
medium
A. Stores task results permanently
B. Manages the Airflow metadata database
C. Acts as a message broker between scheduler and workers
D. Runs the Airflow webserver

Solution

  1. Step 1: Identify Redis role in CeleryExecutor

    Redis is used as a message broker to pass task messages between scheduler and workers.
  2. Step 2: Differentiate Redis from other components

    Redis is not for storing results permanently or running webserver or metadata DB.
  3. Final Answer:

    Acts as a message broker between scheduler and workers -> Option C
  4. Quick Check:

    Redis = message broker in CeleryExecutor [OK]
Hint: Redis brokers messages between scheduler and workers [OK]
Common Mistakes:
  • Thinking Redis stores metadata or results
  • Confusing Redis with PostgreSQL database
  • Assuming Redis runs the webserver
4. You configured Airflow with CeleryExecutor but tasks are not being distributed to workers. Which configuration mistake could cause this?
medium
A. Using SQLite as the metadata database
B. Setting broker_url to a Redis server
C. Running multiple scheduler instances
D. Enabling high availability mode in webserver

Solution

  1. Step 1: Understand metadata database requirements

    CeleryExecutor requires a robust metadata database like PostgreSQL, not SQLite.
  2. Step 2: Identify why SQLite causes issues

    SQLite locks the database and does not support concurrent writes well, blocking task distribution.
  3. Final Answer:

    Using SQLite as the metadata database -> Option A
  4. Quick Check:

    SQLite blocks concurrency, breaks CeleryExecutor [OK]
Hint: Use PostgreSQL, not SQLite, for CeleryExecutor metadata DB [OK]
Common Mistakes:
  • Assuming Redis broker_url is wrong when it is correct
  • Thinking multiple schedulers cause task distribution failure
  • Confusing webserver settings with task distribution
5. To achieve high availability for Airflow's scheduler, which setup is recommended?
hard
A. Run multiple scheduler instances with PostgreSQL backend and CeleryExecutor
B. Run a single scheduler instance with SQLite backend
C. Run multiple webservers without a scheduler
D. Use LocalExecutor with a single scheduler instance

Solution

  1. Step 1: Understand scheduler high availability needs

    Multiple scheduler instances increase reliability and avoid single point of failure.
  2. Step 2: Combine with proper backend and executor

    PostgreSQL supports concurrency well; CeleryExecutor enables distributed task execution.
  3. Step 3: Eliminate incorrect options

    SQLite and single scheduler limit availability; webservers alone don't schedule tasks; LocalExecutor is not distributed.
  4. Final Answer:

    Run multiple scheduler instances with PostgreSQL backend and CeleryExecutor -> Option A
  5. Quick Check:

    Multiple schedulers + PostgreSQL + CeleryExecutor = HA scheduler [OK]
Hint: Multiple schedulers + PostgreSQL + CeleryExecutor = high availability [OK]
Common Mistakes:
  • Using SQLite which blocks concurrency
  • Running only one scheduler instance
  • Confusing webserver role with scheduler
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard