Bird
Raised Fist0
Apache Airflowdevops~20 mins

What is Apache Airflow - Practice Questions & Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Apache Airflow Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Apache Airflow's Purpose

What is the primary purpose of Apache Airflow in a DevOps environment?

ATo automate and schedule complex workflows and data pipelines
BTo serve as a web server for hosting websites
CTo monitor network traffic and detect intrusions
DTo manage container orchestration like Kubernetes
Attempts:
2 left
💡 Hint

Think about what Airflow helps automate and organize.

💻 Command Output
intermediate
1:30remaining
Airflow Webserver Startup Output

What output will you see when you successfully start the Apache Airflow webserver using the command airflow webserver?

Apache Airflow
airflow webserver
AError: command not found
B
Starting the web server on port 8080
Listening on http://localhost:8080
CDatabase connection failed
DKubernetes cluster not found
Attempts:
2 left
💡 Hint

Look for a message indicating the webserver is running and the port number.

❓ Configuration
advanced
2:00remaining
Configuring Airflow Executor

Which configuration setting in airflow.cfg correctly sets the executor to use CeleryExecutor?

Apache Airflow
[core]
executor = SequentialExecutor
A
[core]
executor = CeleryExecutor
B
[core]
executor = KubernetesExecutor
C
[core]
executor = SequentialExecutor
D
[core]
executor = LocalExecutor
Attempts:
2 left
💡 Hint

The executor setting defines how tasks are run in Airflow.

🔀 Workflow
advanced
2:00remaining
Airflow DAG Scheduling Behavior

Given a DAG scheduled with schedule_interval='@daily' and a start date of 2024-06-01, when will the first DAG run be triggered?

AAt midnight on 2024-06-01
BImmediately when the DAG is deployed
CAt midnight on 2024-06-02
DAt noon on 2024-06-01
Attempts:
2 left
💡 Hint

Airflow schedules runs after the period ends.

❓ Troubleshoot
expert
2:30remaining
Diagnosing Airflow Task Failure

You notice a task in your Airflow DAG is stuck in the 'queued' state indefinitely. Which is the most likely cause?

AThe Airflow webserver is down
BThe DAG file has syntax errors
CThe task has already succeeded
DNo available worker to pick up the task
Attempts:
2 left
💡 Hint

Think about what controls task execution after queuing.

Practice

(1/5)
1. What is the main purpose of Apache Airflow?
easy
A. To monitor network traffic
B. To store large amounts of data
C. To create user interfaces for websites
D. To automate and schedule tasks in a specific order

Solution

  1. Step 1: Understand Apache Airflow's role

    Apache Airflow is designed to automate and schedule tasks, not to store data or create interfaces.
  2. Step 2: Identify the correct purpose

    It manages workflows by running tasks in a defined order automatically.
  3. Final Answer:

    To automate and schedule tasks in a specific order -> Option D
  4. Quick Check:

    Automation and scheduling = A [OK]
Hint: Airflow schedules and runs tasks automatically [OK]
Common Mistakes:
  • Confusing Airflow with data storage tools
  • Thinking Airflow builds websites
  • Assuming Airflow monitors networks
2. Which of the following is the correct way to define a DAG in Apache Airflow using Python?
easy
A. dag = DAG('my_dag', schedule_interval='@daily')
B. dag = DAG('my_dag' schedule_interval='@daily')
C. dag = DAG['my_dag', schedule_interval='@daily']
D. dag = DAG{'my_dag', schedule_interval='@daily'}

Solution

  1. Step 1: Check Python syntax for function calls

    Function calls use parentheses with arguments separated by commas.
  2. Step 2: Identify correct syntax

    dag = DAG('my_dag', schedule_interval='@daily') uses parentheses and commas correctly; others have missing commas or wrong brackets.
  3. Final Answer:

    dag = DAG('my_dag', schedule_interval='@daily') -> Option A
  4. Quick Check:

    Function call syntax = A [OK]
Hint: Use parentheses and commas for function arguments [OK]
Common Mistakes:
  • Missing commas between arguments
  • Using square or curly brackets instead of parentheses
  • Incorrect argument separation
3. Given the following Airflow DAG snippet, what will be the order of task execution?
from airflow import DAG
from airflow.operators.dummy import DummyOperator
from datetime import datetime

dag = DAG('example_dag', start_date=datetime(2023,1,1))

t1 = DummyOperator(task_id='task1', dag=dag)
t2 = DummyOperator(task_id='task2', dag=dag)
t3 = DummyOperator(task_id='task3', dag=dag)

t1 >> t2 >> t3
medium
A. All tasks run at the same time
B. task3 runs, then task2, then task1
C. task1 runs, then task2, then task3
D. task2 runs first, then task1, then task3

Solution

  1. Step 1: Understand the '>>' operator in Airflow

    The '>>' operator sets task dependencies, meaning left task runs before right task.
  2. Step 2: Trace the task order

    t1 >> t2 >> t3 means task1 runs first, then task2, then task3.
  3. Final Answer:

    task1 runs, then task2, then task3 -> Option C
  4. Quick Check:

    Dependency chain = task1 -> task2 -> task3 [OK]
Hint: The '>>' operator means 'runs before' [OK]
Common Mistakes:
  • Thinking tasks run in reverse order
  • Assuming tasks run in parallel without dependencies
  • Misreading the '>>' operator
4. You wrote this Airflow DAG code but it fails to run:
from airflow import DAG
from airflow.operators.dummy import DummyOperator
from datetime import datetime

dag = DAG('my_dag', start_date=datetime(2023,1,1))

t1 = DummyOperator(task_id='task1')
t2 = DummyOperator(task_id='task2')

t1 >> t2

What is the error?
medium
A. Task IDs must be integers
B. Missing DAG parameter in DummyOperator tasks
C. start_date must be a string
D. Wrong import for DummyOperator

Solution

  1. Step 1: Check task definitions

    Tasks need to be linked to a DAG by passing the 'dag' parameter.
  2. Step 2: Identify missing 'dag' argument

    t1 and t2 are missing 'dag=dag', so Airflow doesn't know which DAG they belong to.
  3. Final Answer:

    Missing DAG parameter in DummyOperator tasks -> Option B
  4. Quick Check:

    Tasks need DAG assigned = D [OK]
Hint: Always assign tasks to a DAG with dag=dag [OK]
Common Mistakes:
  • Forgetting to pass dag=dag to tasks
  • Incorrect imports causing errors
  • Wrong data types for start_date or task_id
5. You want to create an Airflow workflow that retries a task up to 3 times if it fails. Which DAG task parameter should you set?
hard
A. retries=3
B. retry_count=3
C. max_retry=3
D. retry_limit=3

Solution

  1. Step 1: Recall Airflow retry parameter

    Airflow uses 'retries' to specify how many times to retry a failed task.
  2. Step 2: Match parameter name

    The correct parameter is 'retries', not retry_count, max_retry, or retry_limit.
  3. Final Answer:

    retries=3 -> Option A
  4. Quick Check:

    Retries parameter controls retry count = B [OK]
Hint: Use 'retries' to set retry attempts in Airflow tasks [OK]
Common Mistakes:
  • Using incorrect parameter names like retry_count
  • Confusing retry count with timeout
  • Not setting retries at all
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