Bird
Raised Fist0
Apache Airflowdevops~10 mins

Airflow architecture (scheduler, webserver, executor, metadata DB) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to start the Airflow scheduler service.

Apache Airflow
airflow [1]
Drag options to blanks, or click blank then click option'
Awebserver
Btriggerer
Cscheduler
Dworker
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'webserver' starts the web UI instead of the scheduler.
2fill in blank
medium

Complete the code to start the Airflow webserver on port 8080.

Apache Airflow
airflow webserver [1] 8080
Drag options to blanks, or click blank then click option'
A-p
B--port
C-port
D/p
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-p' or '-port' causes the command to fail or ignore the port setting.
3fill in blank
hard

Fix the error in the executor configuration line to use the CeleryExecutor.

Apache Airflow
executor = [1]Executor
Drag options to blanks, or click blank then click option'
ACelery
BLocal
CSequential
DKubernetes
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'LocalExecutor' or 'SequentialExecutor' changes how tasks run and may not support distributed execution.
4fill in blank
hard

Fill both blanks to complete the metadata database connection string for PostgreSQL.

Apache Airflow
sql_alchemy_conn = postgresql+psycopg2://[1]:[2]@localhost/airflow
Drag options to blanks, or click blank then click option'
Aairflow_user
Bpassword123
Cadmin
Dairflow_pass
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping username and password or using incorrect credentials causes connection failures.
5fill in blank
hard

Fill all three blanks to define a DAG with a schedule interval and default arguments.

Apache Airflow
dag = DAG(dag_id='example_dag', default_args=[1], schedule_interval=[2], catchup=[3])
Drag options to blanks, or click blank then click option'
A{'owner': 'airflow', 'start_date': datetime(2024, 1, 1)}
B'@daily'
CFalse
DTrue
Attempts:
3 left
💡 Hint
Common Mistakes
Using catchup=True causes many backfill runs. Using wrong schedule_interval strings causes scheduling errors.

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