重要
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)的商标。
创建密钥保管库
创建三个机密
用于存储密钥的群集存储键。
principal 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 文档编写自己的代码来提交作业。