|
4 | 4 | from datetime import datetime, timedelta
|
5 | 5 |
|
6 | 6 | from airflow import DAG
|
7 |
| -from airflow.models.baseoperator import chain |
8 | 7 | from airflow.providers.amazon.aws.operators.emr import (
|
9 | 8 | EmrAddStepsOperator,
|
10 | 9 | EmrCreateJobFlowOperator,
|
11 | 10 | EmrTerminateJobFlowOperator,
|
12 | 11 | )
|
13 | 12 |
|
14 |
| -from astronomer.providers.amazon.aws.sensors.emr import EmrStepSensorAsync |
| 13 | +from astronomer.providers.amazon.aws.sensors.emr import ( |
| 14 | + EmrJobFlowSensorAsync, |
| 15 | + EmrStepSensorAsync, |
| 16 | +) |
15 | 17 |
|
16 | 18 | JOB_FLOW_ROLE = os.getenv("EMR_JOB_FLOW_ROLE", "EMR_EC2_DefaultRole")
|
17 | 19 | SERVICE_ROLE = os.getenv("EMR_SERVICE_ROLE", "EMR_DefaultRole")
|
|
55 | 57 | "execution_timeout": timedelta(minutes=30),
|
56 | 58 | }
|
57 | 59 |
|
| 60 | + |
58 | 61 | with DAG(
|
59 |
| - dag_id="example_emr_step_sensor", |
| 62 | + dag_id="example_emr_sensor", |
60 | 63 | schedule_interval=None,
|
61 | 64 | start_date=datetime(2022, 1, 1),
|
62 | 65 | default_args=DEFAULT_ARGS,
|
63 | 66 | tags=["example", "async", "emr"],
|
64 | 67 | catchup=False,
|
65 | 68 | ) as dag:
|
66 |
| - |
| 69 | + # [START howto_operator_emr_create_job_flow_steps_tasks] |
67 | 70 | cluster_creator = EmrCreateJobFlowOperator(
|
68 | 71 | task_id="create_job_flow",
|
69 | 72 | job_flow_overrides=JOB_FLOW_OVERRIDES,
|
70 | 73 | emr_conn_id=EMR_CONN_ID,
|
71 | 74 | )
|
| 75 | + # [END howto_operator_emr_create_job_flow_steps_tasks] |
72 | 76 |
|
73 | 77 | # [START howto_operator_emr_add_steps]
|
74 | 78 | step_adder = EmrAddStepsOperator(
|
|
79 | 83 | )
|
80 | 84 | # [END howto_operator_emr_add_steps]
|
81 | 85 |
|
| 86 | + # [START howto_sensor_emr_job_flow_sensor_async] |
| 87 | + job_flow_sensor = EmrJobFlowSensorAsync( |
| 88 | + task_id="job_flow_sensor", job_flow_id=cluster_creator.output, aws_conn_id=AWS_CONN_ID |
| 89 | + ) |
| 90 | + # [END howto_sensor_emr_job_flow_sensor_async] |
| 91 | + |
82 | 92 | # [START howto_sensor_emr_step_sensor_async]
|
83 | 93 | """
|
84 | 94 | Defer and poll until it reaches the target state
|
|
103 | 113 | )
|
104 | 114 | # [END howto_operator_emr_terminate_job_flow]
|
105 | 115 |
|
106 |
| - chain( |
107 |
| - step_adder, |
108 |
| - step_checker, |
109 |
| - cluster_remover, |
110 |
| - ) |
| 116 | + [job_flow_sensor, step_checker] >> cluster_remover |
| 117 | + step_adder >> step_checker |
0 commit comments