背景
实时研发一直以来的都是通过local-debug的方式来调试开发中的Flink SQL任务,该方式有如下不足:
- 支持的采样数据有限,且非是流式数据的调试。
- 手动上传构造数据的方式较为繁琐,局限性较大。
为便于Flink SQL任务的调试,DataphinV3.14版本支持Flink SQL任务基于Session集群调试,期望做到像离线即席查询般方便地获取实时任务的输出结果,方便用户对线上的真实数据进行代码逻辑上的调试。
Flink Session集群是一个适用于任务快速启停的可交互集群,用户可以在Flink Session集群中实时调试和测试Flink任务。Flink Session集群提供了任务状态、日志和输出结果的实时查看功能,用户可以通过观察任务的行为和输出来验证任务的正确性。用户可以迭代地修改和调试任务代码,以便快速定位和解决问题。
功能概览:
- 支持基于Session集群调试实时任务
- 支持为Session集群划分独立资源以进行实时任务的调试,不影响其他任务的运行。
- 支持跳转Flink ui实时查看Session集群任务的状态、日志和输出结果。
- 支持用户对线上的真实数据进行代码逻辑上的调试。
- 支持流式数据的调试,实时获取任务的输出结果。
使用说明:
仅 R.S3.0 基于K8s架构的独立部署的开源flink引擎下支持使用
操作流程:
1. 创建用于Session集群任务调试的自定义资源组
需要先创建自定义资源组以创建Session集群用于Flink SQL任务调试。
入口:管理中心 > 资源设置 > 资源组配置 > 新建自定义资源组
- 选择合适的调度资源集群
- 配置合理的CPU、内存
- 应用场景选择实时任务-创建Session集群
2. 创建Session集群
入口:管理中心 > 资源设置 > Session集群 > 新建Session集群
- 配置合理的CPU、内存可用量,注意资源配置的CPU、内存总量不能大于Session集群资源组的CPU、内存可用量。
Session集群所需的CPU用量 = Task Managers数量 x TaskManager CPU Cores + JobManager CPU Cores
Session集群所需的内存用量 = Task Managers数量 x TaskManager Memory + JobManager Memory - 配置Session集群运行参数,后续使用Session集群调试Flink SQL任务时,将默认配置该参数信息。
- 完成Session集群新建后将自动启动,可以在Session集群列表查看启动状态。
3. 调试 Flink SQL任务
调试Flink SQL任务时选择采集线上数据,选择可用的调试集群,任务开始调试后会将调试结果打印在控制台