AKS 上的 HDInsight 中的 Apache Flink 应用程序模式群集
重要
AKS 上的 Azure HDInsight 已于 2025 年 1 月 31 日停用。 了解此公告的详细信息。
需要将工作负荷迁移到 Microsoft Fabric 或等效的 Azure 产品,以避免工作负荷突然终止。
重要
此功能目前以预览版提供。 Microsoft Azure 预览版的补充使用条款 包括适用于 beta 版、预览版或尚未正式发布的 Azure 功能的更多法律条款。 有关此特定预览版的信息,请参阅 AKS 上 Azure HDInsight 的预览信息。 关于问题或功能建议,请在 AskHDInsight 上提交请求,并提供详细信息,关注我们以获取 Azure HDInsight 社区 的更多更新。
AKS 上的 HDInsight 现在提供 Flink 应用程序模式群集。 通过此群集,可以使用 Azure 门户和易于使用的接口和 Azure 资源管理 Rest API 来管理群集 Flink 应用程序模式生命周期。 应用程序模式群集旨在支持具有专用资源的大型和长时间运行的作业,并处理资源密集型或广泛的数据处理任务。
通过此部署模式,可为特定的 Flink 应用程序分配专用资源,确保它们有足够的计算能力和内存来高效处理大型工作负荷。
优势
使用 Job jar 简化群集部署。
用户友好的 REST API:AKS 上的 HDInsight 提供用户友好的 ARM Rest API 来管理应用模式作业作,例如更新、保存点、取消、删除。
易于管理作业更新和状态管理:本机 Azure 门户集成提供了更新作业并将其还原到其上次保存状态(保存点)的无麻烦体验。 此功能可确保整个作业生命周期的连续性和数据完整性。
使用 Azure Pipelines 或其他 CI/CD 工具自动执行 Flink 作业:在 AKS 上使用 HDInsight,Flink 用户有权访问用户友好的 ARM Rest API,可以将 Flink 作业作无缝集成到 Azure Pipeline 或其他 CI/CD 工具中。
主要功能
使用保存点停止和启动作业:用户可以优雅地从它们的先前状态(保存点)停止和启动其 Flink 应用模式(AppMode)作业。 保存点确保保存作业进度,从而实现无缝恢复。
作业更新:更新存储帐户上的 jar 后,用户可以更新正在运行的 AppMode 作业。 此更新会自动获取保存点,并使用新的 jar 启动 AppMode 作业。
无状态更新:通过无状态更新简化 AppMode 作业的全新重启。 此功能允许用户使用更新的作业 JAR 文件发起一个清洁的重启。
Savepoint Management:在任何给定时刻,用户可以为其正在运行的作业创建保存点。 可以列出这些保存点,并用于根据需要从特定检查点重启作业。
取消:永久取消任务。
删除:删除 AppMode 群集。
如何创建 Flink 应用程序群集
先决条件
完成以下部分中的先决条件:
在存储帐户中添加作业归档文件。
在设置 Flink 应用模式群集之前,需要执行几个准备步骤。 其中一个步骤涉及将应用模式作业 JAR 置于群集的存储帐户中。
为应用模式任务的 JAR 文件创建目录:
在专用容器中,创建一个目录,在其中上传应用模式作业 JAR 文件。 此目录用作存储要包含在 Flink 群集或作业类路径中的 JAR 文件的位置。
Savepoints Directory (可选):
如果用户打算在执行作业期间使用保存点,请在存储帐户中创建一个单独的目录来存储这些保存点。 此目录用于存储检查点数据和保存点的元数据。
示例目录结构:
创建 Flink 应用模式群集
群集池部署完成后,可以创建 Flink AppMode 群集,让我们了解开始使用现有群集池的步骤。
在 Azure 门户中,在 AKS 上键入 HDInsight 群集池/HDInsight/HDInsight,然后选择 AKS 群集池上的 Azure HDInsight 转到群集池页。 在 AKS 上的 HDInsight 群集池页面中,选择您要在其中创建新 Flink 群集的群集池。
在特定的群集池页上,单击“+ 新建群集”并提供以下信息:
财产 描述 订阅 此字段会自动填充已为群集池注册的 Azure 订阅。 资源组 此字段自动填充并显示群集池上的资源组。 地区 此字段会自动填充并显示群集池上选定的区域。 群集池 此字段会自动填充并显示正在创建群集的群集池名称。 若要在不同的池中创建群集,请在门户中找到群集池,然后单击“+ 新建群集”。 AKS 池版本的 HDInsight 此字段会自动填充,并显示当前正在创建群集的群集池版本。 AKS 版本的 HDInsight 在新群集的 AKS 上选择 HDInsight 的次版本或补丁版本。 群集类型 从下拉列表中选择 Flink。 群集名称 输入新群集的名称。 用户分配的托管标识 从下拉列表中,选择要用于群集的托管标识。 如果您是托管服务标识(MSI)的所有者,并且该 MSI 在集群上没有托管标识操作员角色,请单击框下方的链接,从 AKS 代理池 MSI 分配所需的权限。 如果 MSI 已具有正确的权限,则不显示任何链接。 请参阅 MSI 所需的其他角色分配的先决条件。 存储帐户 从下拉列表中,选择要与 Flink 群集关联的存储帐户并指定容器名称。 在群集创建期间,使用“存储 Blob 数据所有者”角色进一步授予托管标识对指定存储帐户的访问权限。 虚拟网络 群集的虚拟网络。 子网 群集的虚拟子网。 为 Flink SQL 启用 Hive 目录:
财产 描述 使用 Hive 目录 启用此选项以使用外部 Hive 元存储。 用于Hive的SQL数据库 从下拉列表中,选择要在其中添加 hive 元存储表的 SQL 数据库。 SQL 管理员用户名 输入 SQL Server 管理员用户名。 此帐户由元存储用来与 SQL 数据库通信。 密钥保管库 从下拉列表中选择 Key Vault,其中包含具有 SQL Server 管理员用户名密码的机密。 需要设置具有所有所需权限的访问策略,例如密钥权限、机密权限和 MSI 的证书权限,该权限用于群集创建。 MSI 需要 Key Vault 管理员角色。 使用 IAM 添加所需的权限。 SQL 密码密钥名称 输入存储 SQL 数据库密码的 Key Vault 中的机密名称。 注意
默认情况下,我们将存储帐户用于 Hive 目录,与创建群集期间使用的存储帐户和容器相同。
选择“下一步:配置”以继续。
在“配置”页上,提供以下信息:
财产 描述 节点大小 选择用于 Flink 头节点和工作节点的节点大小。 节点数 选择 Flink 群集的节点数;默认情况下,头节点为 2。 工作器节点的大小调整有助于确定 Flink 的任务管理器配置。 作业管理器和历史记录服务器位于头节点上。 在“部署”部分中,选择部署类型作为 应用程序模式 提供以下信息:
财产 描述 Jar 路径 为作业的 jar 文件提供 ABFS(存储)路径。 例如, abfs://flink@teststorage.dfs.core.windows.net/appmode/job.jar
入口类(可选) 应用程序模式群集的主类。 例如:com.microsoft.testjob Args (可选) 你的作业主类的参数。 保存点名称 您要用于启动作业的旧保存点名称 升级模式 选择默认升级选项。 在群集进行主版本升级时使用此选项。 有三个选项可用。 更新: 用户在升级后要从最后一个保存点恢复时使用。 STATELESS_UPDATE: 用户在升级后希望重新重启作业时使用。 LAST_STATE_UPDATE: 用户希望在升级后从上一个检查点恢复作业时使用 Flink 作业配置 添加 Flink 作业所需的更多配置。 选择“作业日志聚合”。 如果要将作业日志上传到远程存储,请选中此复选框。 它有助于解决作业问题。 作业日志的默认位置为“StorageAccount/Container/DeploymentId/logs”。 可以通过配置“pipeline.remote.log.dir”来更改默认日志目录。 日志收集的默认间隔为 600 秒。用户可以通过配置“pipeline.log.aggregation.interval”来更改。
在“服务配置”部分中,提供以下信息:
财产 描述 任务管理器 CPU 整数。 输入任务管理器 CPU 的大小(以核心为单位)。 任务管理器内存(以 MB 为单位) 输入任务管理器内存大小(以 MB 为单位)。 最小值为 1,800 MB。 任务管理器 CPU 整数。 输入作业管理器(核心)的 CPU 数。 作业管理器内存(以 MB 为单位) 输入内存大小(以 MB 为单位)。 最小为 1,800 MB。 历史记录服务器 CPU 整数。 输入作业管理器(核心)的 CPU 数。 历史记录服务器内存(以 MB 为单位) 输入内存大小(以 MB 为单位)。 最小为 1,800 MB。 单击“下一步:集成”按钮继续转到下一页。
在“集成”页上,提供以下信息:
财产 描述 日志分析 仅当群集池关联的日志分析工作区启用后,才能选择要收集的日志,此功能才可用。 Azure Prometheus 此功能是通过将指标和日志发送到 Azure Monitor 工作区,直接在群集中查看见解和日志。 单击“下一步:标记”按钮继续转到下一页。
在“标记”页上,提供以下信息:
财产 描述 名字 自选。 在 AKS 上输入 HDInsight 等名称,以轻松识别与群集资源关联的所有资源。 价值 可以将此保留为空。 资源 选择“所有资源”。 选择“下一步:查看 + 创建”以继续。
在“审阅 + 创建”页上,查找页面顶部的 验证成功 消息,然后单击“创建”。
“进程中的部署”页显示创建的群集。 创建群集需要 5-10 分钟。 创建群集后,将显示“部署已完成”消息。 如果离开页面,可以检查通知的当前状态。
在门户中管理应用程序作业
HDInsight AKS 提供了管理 Flink 作业的方法。 你可以重新启动失败的作业。 从门户重启作业。
若要从门户运行 Flink 作业,请转到:
门户> HDInsight 在 AKS 群集池> Flink 群集> 设置> Flink 作业。
停止:停止作业不需要任何参数。 用户可以通过选择操作来停止任务。 作业停止后,门户上的作业状态应更改为“停止”。
开始:从保存点启动作业。 若要启动作业,请选择已停止的作业并启动它。
更新:更新有助于使用更新的作业代码重启作业。 用户需要在存储位置更新最新的作业包,并从门户中更新作业。 此操作首先通过保存点停止作业,然后使用最新的 jar 重新启动。
无状态更新:无状态更新类似于更新,但它涉及到使用最新代码重新重启作业。 作业更新后,门户上的作业状态会显示为“正在运行”。
保存点:获取 Flink 作业的保存点。
取消:终止作业。
删除:删除 AppMode 群集。
查看作业详细信息:若要查看作业详细信息,用户可以单击作业名称,它会提供有关作业的详细信息和最后一个作结果。
对于任何失败的操作,此 json 视图提供详细的异常和失败原因。