Session集群适用于非生产环境的开发测试环境,您可以使用Session集群模式部署或调试作业,提高作业JM(Job Manager)资源利用率和提高作业启动速度。

背景信息

Flink全托管支持Per-Job集群和Session集群两种集群模式。两种集群模式有以下区别:
  • Per-Job集群(默认):作业之间资源隔离,每个作业都需要一个独立的JM,因为小任务JM的资源利用率较低,因此适用于占用资源比较大或持续稳定运行的作业。
  • Session集群:多个作业可以复用相同的JM,可以提高JM资源利用率。因此适用于大量占用资源比较小或任务启停比较频繁的小并发作业,可以有效节约资源开销。
    说明
    • 每个项目空间可以配置多个Session集群,但只能选择一个Session集群开启SQL Preview 。该配置项的详细说明请参见本文参数解释中的设置为SQL Previews集群
    • Session集群暂不支持开启自动调优功能。
    • 无论您是否使用Session集群,在创建Session集群时会消耗集群资源,其中消耗的资源和您创建集群时选择的资源配置有关。
    • VVR 3.0.4及以下版本的每个Session集群运行后,都会额外消耗0.5 CU的资源。

使用限制

Session集群有以下限制:
  • 暂停Session集群后,不支持修改Flink计算引擎版本。
  • 暂停Session集群后,不支持对TM个数或资源进行缩容。
  • 不支持显示数据曲线。
  • 不支持监控告警功能。

注意事项

  • JobManager单点故障会对集群内的所有作业造成影响。
  • TaskManager单点故障会对在其上有task运行的相关作业造成影响。
  • 同一个TaskManager内部,不同Task之间如果没有进程隔离,则存在相互影响的潜在风险。
  • 如果Session集群为默认配置,则有以下建议:
    • 对于单并发的小作业,建议整个集群的作业总数不超过100个。
    • 对于复杂作业,建议单作业最大并发数不超过512,64个并发的中等规模作业单集群不多于32个。否则可能会出现心跳超时等问题影响集群稳定性。此时,您需要增大心跳间隔和心跳超时时间。
    • 如果您需要同时运行更多的任务,则需要增加Session集群的资源配置。
  • 不建议使用开启了SQL Preview的Session集群运行作业。因为如果产品后续发布新版本,则需要停止Session集群后,手动适配Flink计算引擎,否则本地调试会报错。

创建Session集群

  1. 登录实时计算控制台
  2. Flink全托管页签,单击目标工作空间操作列下的开发控制台
  3. 在左侧导航栏上,选择系统管理 > Session集群
  4. 在页面右上角,单击创建Session集群
  5. 填写配置信息。
    创建session集群参数解释如下表所示。
    模块 配置项 说明
    基础配置 名称 集群名称。
    状态 设置当前集群的期望运行状态:
    • STOPPED:当集群配置完成后保持停止状态,同样会停止所有在运行中的作业。
    • RUNNING:当集群配置完成后保持运行状态。
    设置为SQL Previews集群 将此Session集群设置为SQL Preview查询的资源集群。
    说明 每个项目空间只能有一个Session集群开启SQL Preview,开启此设置将取消之前为SQL Preview设置的Session集群。
    标签名 您可以在标签选项中添加作业标签,便于在总览页面快速定位作业。
    标签值 无。
    配置 引擎版本 仅支持Flink 1.10Flink 1.11Flink 1.12Flink 1.13版本。
    说明 Python API作业需要选择Flink 1.11及以上版本。
    Flink重启策略配置 该参数取值如下:
    • No Restarts:不重启。
    • Fixed Delay:固定延迟。选择该选项后,您还需要填写尝试重启的次数和每次重启时间间隔。
    • Failure Rate:故障率。选择该选项后,您还需要填写检测故障率的时间间隔,时间间隔内的最大失败次数和每次重启时间间隔。
    说明 如果您没有配置该参数,则按Apache Flink默认的重启策略,即当有Task失败时,如果没有开启Checkpoint,JobManager进程不会重启。如果开启了Checkpoint,则JobManager进程会重启。
    其他配置 在此设置其他Flink配置。例如taskmanager.numberOfTaskSlots: 1
    资源配置 Task Managers数量 默认与并行度一致。
    Job Manager CPUs 默认值为1。
    Job Manager Memory 最小值为2 GiB。单位建议使用GiB或MiB,例如,1024 MiB或1.5 GiB。
    JobManager推荐配置包含JobManager资源以及心跳相关参数。具体内容如下:
    • 由于JobManager上承载TaskManager心跳、作业Task序列化和资源调度等功能。因此建议JobManager资源不小于默认配置,请根据集群负载情况进行处理。
    • 为了集群稳定,避免JobManager主线程繁忙导致心跳超时。因此建议心跳间隔(heartbeat.interval)不小于10秒,同时心跳超时(heartbeat.timeout)不小于50秒。请根据TaskManager个数与作业量上涨情况而上调。
    Task Manager CPUs 默认值为2。
    Task Manager Memory 最小值为8 GiB。单位建议使用GiB或MiB,例如,1024 MiB或1.5 GiB。
    TaskManager推荐配置包含单个TaskManager的Slot个数(taskmanager.numberOfTaskSlots)及TaskManager资源大小。具体内容如下:
    • 对于单并发小作业,建议单Slot的CPU内存比为1:4,使用的资源不小于1核2 GiB。
    • 对复杂作业,建议单Slot使用资源不小于1核4 GiB。在默认资源配置下,每个TaskManager可以配置2个Slot。
    • TaskManager资源不宜过小,也不宜过大,推荐默认资源配置并将Slot数目设为2。
      说明
      • 如果单个TaskManager资源过小,则可能影响其上作业的稳定性,并且由于其Slot数目不多,无法有效平摊TaskManager的开销,降低了资源的利用效率。
      • 如果单个TaskManager资源过大,则TaskManager上运行的作业数会很多,一旦TaskManager发生单点故障,影响面会很大。
    日志配置 Root Log Level TRACE、DEBUG、INFO、WARN和ERROR。
    Logger level 填写日志级别。
    Logging Profile 日志模板,可以选择系统模板,也可以选择用户配置。
  6. 单击创建Session集群
    Session集群创建完成后,您就可以在创建作业的部署目标中选择此集群。部署目标