Bird
Raised Fist0
Apache Airflowdevops~3 mins

Why Airflow architecture (scheduler, webserver, executor, metadata DB)? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could stop worrying about task order and failures and just watch your workflows run smoothly?

The Scenario

Imagine you have many tasks to run every day, like sending emails, processing data, or cleaning files. You try to do all these tasks by hand or with simple scripts, running each one separately and checking if they finished okay.

The Problem

Doing this manually is slow and confusing. You might forget to run a task, run them in the wrong order, or miss errors. It's hard to see what's done and what's still waiting. If something breaks, fixing it takes a lot of time and guesswork.

The Solution

Airflow's architecture solves this by organizing tasks into workflows and managing them automatically. The scheduler plans when tasks run, the executor runs them, the webserver shows you the status, and the metadata database keeps track of everything. This way, you get clear control and easy monitoring.

Before vs After
✗ Before
run_task1.sh
run_task2.sh
run_task3.sh
✓ After
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime

default_args = {
    'start_date': datetime(2023, 1, 1),
}

with DAG('my_dag', default_args=default_args, schedule_interval='@daily', catchup=False) as dag:
    task1 = BashOperator(task_id='task1', bash_command='run_task1.sh')
    task2 = BashOperator(task_id='task2', bash_command='run_task2.sh')
    task1 >> task2
What It Enables

With Airflow architecture, you can automate complex workflows reliably and watch their progress in real time through a friendly interface.

Real Life Example

A data team uses Airflow to run daily reports: the scheduler triggers tasks in order, the executor runs them on different machines, the webserver shows if reports succeeded, and the metadata DB stores all history for audits.

Key Takeaways

Manual task running is slow and error-prone.

Airflow's scheduler, executor, webserver, and metadata DB work together to automate and monitor workflows.

This architecture makes managing many tasks easy, reliable, and visible.

Practice

(1/5)
1. Which Airflow component is responsible for deciding when and which tasks to run?
easy
A. Scheduler
B. Webserver
C. Executor
D. Metadata Database

Solution

  1. Step 1: Understand the role of the scheduler

    The scheduler checks the workflow definitions and decides the timing and order of task execution.
  2. Step 2: Differentiate from other components

    The executor runs tasks, the webserver shows status, and the metadata DB stores info. Only the scheduler plans tasks.
  3. Final Answer:

    Scheduler -> Option A
  4. Quick Check:

    Task planning = Scheduler [OK]
Hint: Scheduler plans tasks; executor runs them [OK]
Common Mistakes:
  • Confusing executor with scheduler
  • Thinking webserver runs tasks
  • Assuming metadata DB schedules tasks
2. Which of the following is the correct way to start the Airflow webserver using the CLI?
easy
A. airflow webserver -p
B. airflow webserver start
C. airflow start webserver
D. airflow webserver

Solution

  1. Step 1: Recall the Airflow CLI command for webserver

    The correct command to start the webserver is simply airflow webserver.
  2. Step 2: Analyze other options

    airflow webserver start adds an unnecessary 'start', airflow start webserver reverses the order, and airflow webserver -p adds a port flag which is valid but incomplete without specifying the port number explicitly.
  3. Final Answer:

    airflow webserver -> Option D
  4. Quick Check:

    Start webserver = airflow webserver [OK]
Hint: Use 'airflow webserver' to start the UI [OK]
Common Mistakes:
  • Adding extra words like 'start'
  • Reversing command order
  • Incorrect or incomplete flags
3. Given the following Airflow setup: The scheduler triggers a task, the executor runs it, and the metadata DB records the status. What will happen if the metadata DB is down?
medium
A. Tasks will run but status won't be saved
B. Scheduler will stop scheduling tasks
C. Webserver will crash immediately
D. Executor will ignore tasks

Solution

  1. Step 1: Understand metadata DB role

    The metadata DB stores task states and workflow info. If it is down, Airflow components cannot read or write task status.
  2. Step 2: Impact on scheduler and executor

    The scheduler depends on the metadata DB to know which tasks to schedule. Without DB access, it cannot schedule new tasks. The executor waits for tasks from the scheduler.
  3. Final Answer:

    Scheduler will stop scheduling tasks -> Option B
  4. Quick Check:

    Metadata DB down stops scheduler [OK]
Hint: Metadata DB failure stops scheduler [OK]
Common Mistakes:
  • Thinking tasks run without DB
  • Assuming webserver crashes immediately
  • Believing executor ignores tasks
4. You notice that tasks are not running even though the webserver shows them as scheduled. Which component should you check first to debug this issue?
medium
A. Executor
B. Scheduler
C. Metadata Database
D. Webserver

Solution

  1. Step 1: Analyze symptoms

    Tasks are marked scheduled in the webserver UI but are not running. This means scheduling is done but execution is not happening.
  2. Step 2: Identify responsible component

    The executor runs the tasks. If tasks are scheduled but not running, the executor might be stuck or misconfigured.
  3. Final Answer:

    Executor -> Option A
  4. Quick Check:

    Tasks not running? Check executor [OK]
Hint: Scheduled but not running? Check executor first [OK]
Common Mistakes:
  • Checking scheduler when scheduling works
  • Restarting webserver unnecessarily
  • Ignoring executor logs
5. In a distributed Airflow setup, which component must be shared and accessible by both the scheduler and executor to coordinate task execution properly?
hard
A. Webserver
B. Local task logs
C. Metadata Database
D. Scheduler's local cache

Solution

  1. Step 1: Understand distributed setup needs

    In distributed Airflow, multiple executors and schedulers may run on different machines.
  2. Step 2: Identify shared resource for coordination

    The metadata database stores task states and is the central point both scheduler and executor use to coordinate which tasks to run and their status.
  3. Step 3: Exclude other options

    The webserver is for UI only, local logs are not shared, and scheduler's local cache is not accessible by executors.
  4. Final Answer:

    Metadata Database -> Option C
  5. Quick Check:

    Shared coordination = Metadata DB [OK]
Hint: Metadata DB is central shared store in distributed Airflow [OK]
Common Mistakes:
  • Thinking webserver shares task state
  • Assuming local logs are shared
  • Believing scheduler cache syncs executors
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