設定 Amazon MWAA 工作者自動擴展 - Amazon Managed Workflows for Apache Airflow

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon MWAA 工作者自動擴展

自動擴展機制會自動增加 Apache Airflow 工作者的數量,以回應在 Amazon Managed Workflows for Apache Airflow 環境上執行和排入佇列的任務,並在沒有更多任務排入佇列或執行時處置額外的工作者。本主題說明如何透過指定使用 Amazon MWAA 主控台在環境中執行的 Apache Airflow 工作者數量上限,來設定自動擴展。

注意

Amazon MWAA 使用 Apache Airflow 指標來判斷何時需要額外的 Celery Executor 工作者,並視需要將 Fargate 工作者的數量增加到 指定的值max-workers。當額外的工作者完成工作和工作量減少時,Amazon MWAA 會將其移除,因此縮減至 設定的值min-workers

如果工作者在縮減規模時挑選新任務,Amazon MWAA 會保留 Fargate 資源,而不會移除工作者。如需詳細資訊,請參閱 Amazon MWAA 自動擴展的運作方式

工作者擴展的運作方式

Amazon MWAA 使用 RunningTasksQueuedTasks指標,其中 (執行中的任務 + 已排入佇列的任務) / (每個工作者的任務) = (必要的工作者)。如果所需的工作者數量大於目前的工作者數量,Amazon MWAA 會將 Fargate 工作者容器新增至該值,直到 指定的最大值為止max-workers

隨著工作負載減少且 RunningTasksQueuedTasks 指標總和減少,Amazon MWAA 會請求 Fargate 縮減環境的工作者規模。仍然完成工作的任何工作者在縮減規模期間都會受到保護,直到他們完成工作為止。視工作負載而定,任務可能會在工作者縮減規模時排入佇列。

使用 Amazon MWAA 主控台

您可以選擇可在 Amazon MWAA 主控台上同時在環境中執行的工作者數量上限。根據預設,您最多可以指定 25 個值。

設定工作者數量
  1. 在 Amazon MWAA 主控台上開啟環境頁面

  2. 選擇環境。

  3. 選擇編輯

  4. 選擇下一步

  5. 環境類別窗格中,在工作者計數上限中輸入值。

  6. 選擇儲存

注意

變更對您的環境生效可能需要幾分鐘的時間。

高效能使用案例範例

下一節說明可用於在 環境中啟用高效能和平行處理的組態類型。

內部部署 Apache Airflow

一般而言,在內部部署 Apache Airflow 平台中,您會在 airflow.cfg 檔案中設定任務平行處理、自動擴展和並行設定:

  • core.parallelism – 每個排程器可同時執行的任務執行個體數目上限。

  • core.dag_concurrency – DAGs(非工作者)。

  • celery.worker_autoscale – 可在任何工作者上同時執行的任務數量上限和下限。

例如,如果 core.parallelism 設定為 100core.dag_concurrency 設定為 7,則如果您有 2 個 DAGs,您仍然只能同時執行總共 個14任務。有鑑於,即使整體平行處理設定為 (在 中core.dag_concurrency),每個 DAG 都會設定為僅同時執行七個任務 100(在 中core.parallelism)。

在 Amazon MWAA 環境中

在 Amazon MWAA 環境中,您可以使用 在 Amazon MWAA 上使用 Apache Airflow 組態選項、 和工作者計數上限自動擴展機制設定 Amazon MWAA 環境類別,直接在 Amazon MWAA 主控台上設定這些設定。雖然 core.dag_concurrency Amazon MWAA 主控台的下拉式清單中無法使用 Apache Airflow 組態選項,但您可以將它新增為自訂 Apache Airflow 組態選項

假設您在建立環境時選擇下列設定:

  1. mw1.small 環境類別,可控制每個工作者預設可執行的並行任務數量上限,以及容器的 vCPU。

  2. 10 工作者計數上限中的工作者預設設定。

  3. 每個工作者celery.worker_autoscale5,5任務的 Apache Airflow 組態選項

這表示您可以在環境中執行 50 個並行任務。任何超過 50 個的任務都會排入佇列,並等待執行中的任務完成。

執行更多並行任務。您可以使用下列組態來修改您的環境,以同時執行更多任務:

  1. 根據預設,透過選擇 mw1.medium(依預設 10 個並行任務) 環境類別,增加每個工作者可執行的並行任務數量上限和容器的 vCPU。

  2. 新增 celery.worker_autoscale做為 Apache Airflow 組態選項

  3. 增加工作者計數上限。在此範例中,將工作者上限從 增加1020,會使環境可執行的並行任務數量加倍。

指定最小工作者。您也可以使用 AWS Command Line Interface () 指定在您環境中執行的 Apache Airflow 工作者數量下限和上限AWS CLI。例如:

aws mwaa update-environment --max-workers 10 --min-workers 10 --name YOUR_ENVIRONMENT_NAME

若要進一步了解,請參閱《》中的 update-environment 命令 AWS CLI。

對卡在執行中狀態的任務進行故障診斷

在極少數情況下,Apache Airflow 可能會認為仍有任務仍在執行中。若要解決此問題,您需要清除 Apache Airflow UI 中的分層任務。如需詳細資訊,請參閱我看到我的任務停滯或未完成疑難排解主題。

後續步驟?