Managed Airflow (第 3 代) | Managed Airflow (第 2 代) | Managed Airflow (舊版第 1 代)
本頁面說明如何使用 Managed Airflow (第 2 代),在Google Cloud執行 Managed Service for Apache Spark 工作負載。
下列各節的範例說明如何使用運算子管理 Managed Service for Apache Spark 批次工作負載。您可以在 DAG 中使用這些運算子,建立、刪除、列出及取得 Managed Service for Apache Spark 批次工作負載:
為與 Managed Service for Apache Spark 批次工作負載搭配使用的運算子建立 DAG:
建立使用自訂容器和 Dataproc Metastore 的 DAG。
為這些 DAG 設定永久記錄伺服器。
事前準備
啟用 Dataproc API:
控制台
如果尚未啟用 Managed Service for Apache Spark API,請先啟用。
啟用 API 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud
啟用 Managed Service for Apache Spark API (如果尚未啟用):
啟用 API 所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「Service Usage 管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable dataproc.googleapis.com
選取批次工作負載檔案的位置。您可以使用下列任一選項:
- 建立 Cloud Storage bucket,用於儲存這個檔案。
- 使用環境的 bucket。由於您不需要將這個檔案與 Airflow 同步,因此可以在
/dags或/data資料夾外建立獨立的子資料夾。例如:/batches。 - 使用現有 bucket。
設定檔案和 Airflow 變數
本節說明如何設定本教學課程的檔案和 Airflow 變數。
將 Managed Service for Apache Spark 機器學習工作負載檔案上傳至 bucket
本教學課程中的工作負載會執行 pyspark 指令碼:
將任何 pyspark 指令碼儲存至名為
spark-job.py的本機檔案。例如,您可以使用範例 pyspark 指令碼。
設定 Airflow 變數
以下各節的範例會使用 Airflow 變數。您可以在 Airflow 中設定這些變數的值,然後 DAG 程式碼就能存取這些值。
本教學課程中的範例使用下列 Airflow 變數。您可以根據使用的範例,視需要設定這些變數。
設定下列 Airflow 變數,以便在 DAG 程式碼中使用:
project_id:專案 ID。bucket_name:工作負載主要 Python 檔案 (spark-job.py) 所在 bucket 的 URI。您在「事前準備」中選取了這個位置。phs_cluster:永久記錄伺服器叢集名稱。您會在建立永久記錄伺服器時設定這個變數。image_name:自訂容器映像檔的名稱和標記 (image:tag)。您在使用 DataprocCreateBatchOperator 自訂容器映像檔時,會設定這個變數。metastore_cluster:Dataproc Metastore 服務名稱。當您搭配 DataprocCreateBatchOperator 使用 Dataproc Metastore 服務時,請設定這個變數。region_name:Dataproc Metastore 服務所在的區域。當您搭配 DataprocCreateBatchOperator 使用 Dataproc Metastore 服務時,請設定這個變數。
使用 Google Cloud 控制台和 Airflow UI 設定各個 Airflow 變數
前往 Google Cloud 控制台的「Environments」(環境) 頁面。
在環境清單中,按一下環境的「Airflow」Airflow連結。Airflow UI 隨即開啟。
在 Airflow UI 中,依序選取「Admin」>「Variables」。
按一下「Add a new record」。
在「Key」欄位中指定變數名稱,並在「Val」欄位中設定變數值。
按一下 [儲存]。
建立永久記錄伺服器
使用永久記錄伺服器 (PHS) 查看批次工作負載的 Spark 記錄檔:
- 建立永久記錄伺服器。
- 請確認您已在
phs_clusterAirflow 變數中指定 PHS 叢集的名稱。
DataprocCreateBatchOperator
下列 DAG 會啟動 Managed Service for Apache Spark 批次工作負載。
如要進一步瞭解 DataprocCreateBatchOperator 引數,請參閱運算子的原始碼。
如要進一步瞭解可在 DataprocCreateBatchOperator 的 batch 參數中傳遞的屬性,請參閱批次類別說明。
搭配 DataprocCreateBatchOperator 使用自訂容器映像檔
以下範例說明如何使用自訂容器映像檔執行工作負載。舉例來說,您可以使用自訂容器,新增預設容器映像檔未提供的 Python 依附元件。
如要使用自訂容器映像檔,請按照下列步驟操作:
在
image_nameAirflow 變數中指定映像檔。搭配自訂映像檔使用 DataprocCreateBatchOperator:
搭配 DataprocCreateBatchOperator 使用 Dataproc Metastore 服務
如要透過 DAG 使用 Dataproc Metastore 服務,請按照下列步驟操作:
確認 metastore 服務已啟動。
如要瞭解如何啟動 metastore 服務,請參閱「啟用及停用 Dataproc Metastore」。
如要進一步瞭解用於建立設定的 Batch 運算子,請參閱 PeripheralsConfig。
metastore 服務啟動並運作後,請在
metastore_cluster變數中指定其名稱,並在region_nameAirflow 變數中指定其區域。在 DataprocCreateBatchOperator 中使用 metastore 服務:
DataprocDeleteBatchOperator
您可以使用 DataprocDeleteBatchOperator,根據工作負載的批次 ID 刪除批次。
DataprocListBatchesOperator
DataprocListBatchesOperator 會列出指定 project_id 和區域中的批次。
DataprocGetBatchOperator
DataprocGetBatchOperator 會擷取特定批次工作負載。