将任务分配给具有气流的特定机器

Assigning tasks to specific machines with airflow

我是 Airflow 新手。

我有一个 DAG,其中包含一个应该 运行 在特定机器(在我的例子中是 EMR 集群)上的任务。我如何告诉 airflow 运行 特定任务的位置,以便每次 运行 它只会在该机器上执行?

运行 您在该机器上的工作人员具有队列名称。在气流 cli 中,您可以执行以下操作:

airflow worker -q my_queue

然后定义该任务以使用该队列:

task = PythonOperator(
    task_id='task',
    python_callable=my_callable,
    queue='my_queue',
    dag=dag)