如何在 AKS 上的 HDInsight 上搭配使用 Apache Flink® 和 Azure Pipelines
注意
AKS 上的 Azure HDInsight 將於 2025 年 1 月 31 日退場。 請於 2025 年 1 月 31 日之前,將工作負載移轉至 Microsoft Fabric 或對等的 Azure 產品,以免工作負載突然終止。 訂用帳戶中剩餘的叢集將會停止,並會從主機移除。
在淘汰日期之前,只有基本支援可用。
重要
此功能目前為預覽功能。 Microsoft Azure 預覽版增補使用規定包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。 若需此特定預覽版的相關資訊,請參閱 Azure HDInsight on AKS 預覽版資訊。 如有問題或功能建議,請在 AskHDInsight 上提交要求並附上詳細資料,並且在 Azure HDInsight 社群上追蹤我們以獲得更多更新資訊。
您將在本文了解如何在 AKS 上搭配使用 Azure Pipelines 和 HDInsight 來提交 Flink 作業與叢集的 REST API。 我們會使用範例 YAML 管線和 PowerShell 指令碼引導您完成此流程,這兩者都會簡化 REST API 互動的自動化。
必要條件
Azure 訂閱。 如果您沒有 Azure 訂用帳戶,請建立免費帳戶。
您可以在其中建立存放庫的 GitHub 帳戶。 免費建立一個。
建立
.pipeline
目錄、複製 flink-azure-pipelines.yml 和 flink-job-azure-pipeline.ps1Azure DevOps 組織 免費建立一個。 如果您的小組已有組織,則請確定您是要使用的 Azure DevOps 專案的管理員。
能夠在 Microsoft 裝載的代理程式上執行管線。 若要使用 Microsoft 託管的代理程式,Azure DevOps 組織必須能夠存取 Microsoft 託管的平行作業。 您可以購買平行作業,也可以要求免費授與。
Flink 叢集。 如果您沒有 Flink 叢集,在 AKS 上的 HDInsight 建立 Flink 叢集。
在叢集儲存體帳戶中建立一個目錄,以複製作業 JAR。 稍後您會需要這個目錄以在管線 YAML 中設定作業 JAR 位置 (<JOB_JAR_STORAGE_PATH>)。
設定管線的步驟
為 Azure Pipelines 建立服務主體
建立 Microsoft Entra 服務主體以存取 Azure – 使用參與者角色授與權限存取 AKS 叢集上 HDInsight,請記下回應中的 appId、密碼和租用戶。
az ad sp create-for-rbac -n <service_principal_name> --role Contributor --scopes <Flink Cluster Resource ID>`
範例:
az ad sp create-for-rbac -n azure-flink-pipeline --role Contributor --scopes /subscriptions/abdc-1234-abcd-1234-abcd-1234/resourceGroups/myResourceGroupName/providers/Microsoft.HDInsight/clusterpools/hiloclusterpool/clusters/flinkcluster`
參考
注意
Apache、Apache Flink、Flink 和相關聯的開放原始碼專案名稱為 Apache Software Foundation (ASF) 的商標。
建立金鑰保存庫
建立 Azure Key Vault,您可以遵循本教學課程來建立新的 Azure Key Vault。
建立三個祕密
儲存體金鑰的 cluster-storage-key。
主體 clientId 或 appId 的 service-principal-key。
主體秘密的 service-principal-secret。
向服務主體授與使用「Key Vault 秘密長」角色存取 Azure Key Vault 的權限。
設定管線
瀏覽至您的專案,然後按一下 [專案設定]。
向下卷動並選取 [服務連線],然後選取 [新服務連線]。
選取 [Azure Resource Manager]。
在驗證方法中,選取 [服務主體] (手動)。
編輯服務連線屬性。 選取您最近建立的服務主體。
按一下 [驗證] 以檢查連線是否已正確設定。 您也可能遇到下列錯誤:
然後,您必須將讀者角色指派給訂用帳戶。
之後,驗證應該會成功。
儲存服務連線。
瀏覽至管線,然後按一下 [新管線]。
選取 [GitHub] 作為程式碼的位置。
選取 存放庫。 請參閱 如何在 GitHub 中建立存放庫。 select-github-repo 影像。
選取 存放庫。 如需詳細資訊,請參閱 如何在 GitHub 中建立存放庫。
從 [設定管線] 選項,您可以選擇 [現有的 Azure Pipelines YAML 檔案]。 選取您稍早複製的分支和管線指令碼。 (.pipeline/flink-azure-pipelines.yml)
取代變數區段中的值。
根據您的需求更正程式碼建置區段,並在作業 JAR 本機路徑的變數區段中設定 <JOB_JAR_LOCAL_PATH>。
新增管線變數「action」並設定值「RUN」。
您可以在執行管線之前變更變數的值。
NEW: 此值為預設。 它會啟動新的作業,如果作業已在執行中,則會使用最新的 JAR 更新執行中的作業。
SAVEPOINT: 此值會採用執行中的作業的儲存點。
DELETE: 取消或刪除執行中的作業。
儲存並執行管線。 您可以在 Flink 作業區段中看到入口網站上執行中的作業。
注意
這是使用管線提交作業的一個範例。 您可以遵循 Flink REST API 文件撰寫自己的程式碼來提交作業。