The Celery executor is a way to run Airflow tasks in parallel across multiple worker machines using Celery, a distributed task queue system.
Click to reveal answer
beginner
How does the Celery executor improve task execution in Airflow?
It allows tasks to run on multiple worker nodes simultaneously, improving scalability and fault tolerance compared to running tasks on a single machine.
Click to reveal answer
intermediate
What components are required to use the Celery executor in Airflow?
You need a message broker (like RabbitMQ or Redis), multiple worker nodes running Celery workers, and the Airflow scheduler configured to use the Celery executor.
Click to reveal answer
intermediate
Which configuration file do you modify to enable the Celery executor in Airflow?
You modify the airflow.cfg file, setting the executor parameter to CeleryExecutor and configuring the broker URL and result backend.
Click to reveal answer
beginner
What is the role of the message broker in the Celery executor setup?
The message broker queues tasks and sends them to available worker nodes for execution, acting like a post office delivering task messages.
Click to reveal answer
What does the Celery executor use to distribute tasks across workers?
AA message broker like RabbitMQ or Redis
BA single-threaded scheduler
CDirect database queries
DLocal file system locks
✗ Incorrect
The Celery executor uses a message broker such as RabbitMQ or Redis to queue and distribute tasks to workers.
Which Airflow configuration parameter sets the executor to Celery?
Aexecutor = CeleryExecutor
Bexecutor = LocalExecutor
Cexecutor = SequentialExecutor
Dexecutor = KubernetesExecutor
✗ Incorrect
Setting executor = CeleryExecutor in airflow.cfg enables the Celery executor.
What is NOT required to run Airflow with the Celery executor?
AA message broker
BA local-only scheduler
CA web server
DMultiple worker nodes
✗ Incorrect
The scheduler must be running and configured for Celery, but it is not limited to local-only; it works with distributed workers.
What happens if a Celery worker node fails during task execution?
AThe scheduler shuts down
BThe entire Airflow system stops
CThe task is lost permanently
DThe task is retried or reassigned to another worker
✗ Incorrect
Celery can retry or reassign tasks if a worker fails, improving fault tolerance.
Which of these is a common message broker used with Celery executor?
AMongoDB
BMySQL
CRedis
DApache Kafka
✗ Incorrect
Redis is a popular message broker used with Celery for task queuing.
Explain how the Celery executor enables distributed task execution in Airflow.
Think about how tasks move from scheduler to workers.
You got /4 concepts.
Describe the key configuration changes needed to switch Airflow to use the Celery executor.
Focus on airflow.cfg and required services.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using the CeleryExecutor in Apache Airflow?
easy
A. To replace the Airflow webserver with a faster interface
B. To store task logs locally on the scheduler machine
C. To execute tasks only on the local machine sequentially
D. To run tasks on multiple machines simultaneously for better scalability
Solution
Step 1: Understand CeleryExecutor's role
CeleryExecutor allows Airflow to distribute task execution across multiple worker machines.
Step 2: Compare options with this role
Only To run tasks on multiple machines simultaneously for better scalability describes running tasks on many machines at once, which matches CeleryExecutor's purpose.
Final Answer:
To run tasks on multiple machines simultaneously for better scalability -> Option D
Quick Check:
CeleryExecutor = distributed task execution [OK]
Hint: CeleryExecutor means many workers run tasks in parallel [OK]
Common Mistakes:
Thinking CeleryExecutor runs tasks only locally
Confusing CeleryExecutor with Airflow webserver
Assuming CeleryExecutor stores logs locally
2. Which configuration setting in airflow.cfg enables the Celery executor?
easy
A. executor = LocalExecutor
B. executor = CeleryExecutor
C. executor = SequentialExecutor
D. executor = KubernetesExecutor
Solution
Step 1: Identify the executor setting in airflow.cfg
The executor type is set by the executor parameter in airflow.cfg.
Step 2: Match the correct executor name for Celery
To enable Celery executor, the value must be CeleryExecutor.
Final Answer:
executor = CeleryExecutor -> Option B
Quick Check:
executor setting = CeleryExecutor [OK]
Hint: Set executor = CeleryExecutor in airflow.cfg [OK]
Common Mistakes:
Using LocalExecutor instead of CeleryExecutor
Misspelling CeleryExecutor in config
Confusing executor with other unrelated settings
3. Given this Airflow CeleryExecutor setup, what happens when a DAG task is triggered?
1. Scheduler sends task to message broker 2. Worker picks task from broker queue 3. Worker executes task and updates database
medium
A. Task is distributed to a worker and executed asynchronously
B. Task runs only on the scheduler machine
C. Task is executed immediately by the scheduler without queue
D. Task fails because CeleryExecutor does not use a message broker
Solution
Step 1: Understand CeleryExecutor task flow
The scheduler sends tasks to a message broker, which workers listen to and execute asynchronously.
Step 2: Match the correct description
Task is distributed to a worker and executed asynchronously correctly describes the asynchronous distributed execution via workers.
Final Answer:
Task is distributed to a worker and executed asynchronously -> Option A
Quick Check:
CeleryExecutor = async distributed tasks [OK]
Hint: Tasks go to workers via broker, run async [OK]
Common Mistakes:
Thinking tasks run on scheduler directly
Ignoring the message broker role
Assuming synchronous execution
4. You configured Airflow to use CeleryExecutor but tasks are stuck in the queue and never run. What is the most likely cause?
medium
A. The DAG files are missing from the scheduler
B. The scheduler is not running
C. The message broker (e.g., RabbitMQ or Redis) is not running or unreachable
D. The Airflow webserver is down
Solution
Step 1: Identify the role of the message broker
CeleryExecutor relies on a message broker to queue tasks for workers.
Step 2: Understand why tasks get stuck
If the broker is down or unreachable, tasks remain queued and are not delivered to workers.
Final Answer:
The message broker (e.g., RabbitMQ or Redis) is not running or unreachable -> Option C
Quick Check:
Broker down = tasks stuck [OK]
Hint: Check if message broker service is running [OK]
Common Mistakes:
Blaming scheduler when broker is down
Ignoring broker connectivity issues
Assuming webserver affects task execution
5. You want to improve task execution reliability using CeleryExecutor. Which combination of components should you configure to ensure tasks are not lost if a worker crashes?
hard
A. Use a persistent message broker like RabbitMQ and enable result backend in the database
B. Use LocalExecutor and disable the message broker
C. Run all tasks on the scheduler machine without workers
D. Use CeleryExecutor without a result backend
Solution
Step 1: Understand reliability needs in CeleryExecutor
To avoid task loss, the message broker must persist tasks and results must be stored reliably.
Step 2: Identify correct components
RabbitMQ is a persistent broker; enabling a result backend in the database stores task states safely.
Final Answer:
Use a persistent message broker like RabbitMQ and enable result backend in the database -> Option A
Quick Check:
Persistent broker + result backend = reliable tasks [OK]
Hint: Persistent broker + result backend prevent task loss [OK]
Common Mistakes:
Disabling message broker with CeleryExecutor
Not enabling result backend causes lost states
Running tasks only on scheduler reduces reliability
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.