如何在 AKS 上的 HDInsight 上将 Azure Pipelines 与 Apache Flink® 配合使用
重要
AKS 上的 Azure HDInsight 已于 2025 年 1 月 31 日停用。 了解更多 ,通过此公告。
需要将工作负荷迁移到 Microsoft Fabric 或等效的 Azure 产品,以避免工作负荷突然终止。
重要
此功能目前以预览版提供。 Microsoft Azure 预览版补充使用条款 包括适用于 beta 版、预览版或尚未正式发布的 Azure 功能的更多法律条款。 有关此特定预览的信息,请参阅 Azure HDInsight 在 AKS 上的预览信息 。 有关问题或功能建议,请在 AskHDInsight 上提交请求,并提供详细信息。关注我们以获取有关 Azure HDInsight 社区 的更多更新。
本文介绍如何将 Azure Pipelines 与 AKS 上的 HDInsight 配合使用,以使用群集的 REST API 提交 Flink 作业。 我们将指导你完成使用示例 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 群集。 如果没有,请在 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 软件基金会(ASF)的商标。
创建密钥保管库
创建三个机密
用于存储密钥的群集存储键。
主体 clientId 或 appId 的服务主体密钥。
服务主体机密 用于表示主体机密。
向服务主体授予使用“Key Vault 机密官员”角色访问 Azure Key Vault 的权限。
设置管道
导航到项目,然后单击“项目设置”。
向下滚动并选择“服务连接”,然后选择“新建服务连接”。
选择 Azure 资源管理器。
在身份验证方法中,选择“服务主体”(手动)。
编辑服务连接属性。 选择最近创建的服务主体。
单击“验证”检查连接是否已正确设置。 如果遇到以下错误:
然后,需要将读取者角色分配给订阅。
之后,验证应成功。
保存服务连接。
导航到管道并单击“新建管道”。
选择 GitHub 作为代码的位置。
选择存储库。 请参阅 如何在 GitHub 中创建存储库。 select-github-repo 映像。
选择存储库。 有关详细信息,请参阅如何在 GitHub中创建存储库。
从配置管道选项中,可以选择 现有 Azure Pipelines YAML 文件。 选择之前复制的分支和管道脚本。 (.pipeline/flink-azure-pipelines.yml)
替换变量节中的值。
根据要求修正代码构建部分,并在作业 jar 本地路径的变量部分中配置 <JOB_JAR_LOCAL_PATH>。
添加管道变量“action”并配置值“RUN”。
可以在运行流水线之前更改变量的值。
新建:此值为默认值。 它启动新作业,如果作业已在运行,则它会使用最新的 jar 更新正在运行的作业。
SAVEPOINT:此值采用正在运行的任务的保存点。
DELETE:取消或删除正在运行的作业。
保存并运行管道。 可以在门户的 Flink 作业部分看到正在运行的作业。
注意
这是通过管道提交作业的示例。 可以按照 Flink REST API 文档编写自己的代码来提交作业。