Session集群适用于非生产环境的开发测试环境,您可以使用Session集群模式部署或调试作业,提高作业JM(Job Manager)资源利用率和提高作业启动速度。
背景信息
Flink全托管支持Per-Job集群和Session集群两种集群模式。两种集群模式有以下区别:
- Per-Job集群(默认):作业之间资源隔离,每个作业都需要一个独立的JM,因为小任务JM的资源利用率较低,因此适用于占用资源比较大或持续稳定运行的作业。
- Session集群:多个作业可以复用相同的JM,可以提高JM资源利用率。但因为JM复用会使得作业间稳定性会相互影响,且Session集群无法提供单独作业的Metric和报警能力,因此适用于作业测试运行。说明
- 无论您是否使用Session集群,在创建Session集群时会消耗集群资源,其中消耗的资源和您创建集群时选择的资源配置有关。
- VVR 3.0.4及以下版本的每个Session集群运行后,都会额外消耗0.5 CU的资源。
使用限制
- Session集群不支持显示数据曲线。
- Session集群不支持监控告警功能。
- Session集群暂不支持开启自动调优功能。
注意事项
- Session集群作为开发测试环境,请勿将Session集群用于正式生产环境。如果将Session集群用于正式生产环境,会有以下业务稳定性问题:
- JobManager单点故障会对集群内的所有作业造成影响。
- TaskManager单点故障会对在其上有task运行的相关作业造成影响。
- 同一个TaskManager内部,不同Task之间如果没有进程隔离,则存在相互影响的潜在风险。
- 如果Session集群为默认配置,则有以下建议:
- 对于单并发的小作业,建议整个集群的作业总数不超过100个。
- 对于复杂作业,建议单作业最大并发数不超过512,64个并发的中等规模作业单集群不多于32个。否则可能会出现心跳超时等问题影响集群稳定性。此时,您需要增大心跳间隔和心跳超时时间。
- 如果您需要同时运行更多的任务,则需要增加Session集群的资源配置。
创建Session集群
- 登录实时计算控制台。
- 在Flink全托管页签,单击目标工作空间操作列下的控制台。
- 在左侧导航栏上,单击Session集群。
- 单击创建Session集群。
- 填写配置信息。参数解释如下表所示。
模块 配置项 说明 基础配置 名称 集群名称。 状态 设置当前集群的期望运行状态: - STOPPED:当集群配置完成后保持停止状态,同样会停止所有在运行中的作业。
- RUNNING:当集群配置完成后保持运行状态。
标签名 您可以在标签选项中添加作业标签,便于在总览页面快速定位作业。 标签值 无。 配置 引擎版本 当前作业使用的Flink的引擎版本。 说明 Python API作业需要选择vvr-2.1.4-flink 1.11及以上版本。Flink重启策略配置 该参数取值如下: - Failure Rate:基于失败率重启。
选择该选项后,您还需要填写检测Failure Rate的时间间隔、时间间隔内的最大失败次数和每次重启时间间隔。
- Fixed Delay:固定间隔重启。
选择该选项后,您还需要填写尝试重启的次数和每次重启时间间隔。
- No Restarts:作业task失败不会重启。
重要 如果您没有配置该参数,则按Apache Flink默认的重启策略,即当有Task失败时,如果没有开启Checkpoint,JobManager进程不会重启。如果开启了Checkpoint,则JobManager进程会重启。更多Flink配置 在此设置更多Flink配置。例如 taskmanager.numberOfTaskSlots: 1
。资源配置 Task Managers数量 默认与并行度一致。 JobManager CPU Cores 默认值为1。 JobManager Memory 最小值为1 GiB,推荐值为2 GiB。单位建议使用GiB或MiB,例如,1024 MiB或1.5 GiB。 JobManager推荐配置包含JobManager资源以及心跳相关参数。具体内容如下:- 由于JobManager上承载TaskManager心跳、作业Task序列化和资源调度等功能。因此建议JobManager资源不小于默认配置,请根据集群负载情况进行处理。
- 为了集群稳定,避免JobManager主线程繁忙导致心跳超时。因此建议心跳间隔(heartbeat.interval)不小于10秒,同时心跳超时(heartbeat.timeout)不小于50秒。请根据TaskManager个数与作业量上涨情况而上调。
TaskManager CPU Cores 默认值为2。 TaskManager Memory 最小值为1 GiB,推荐值为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发生单点故障,影响面会很大。
日志配置 根日志等级 日志级别从低到高的顺序如下: - TRACE:比DEBUG更细粒度的信息。
- DEBUG:系统运行状态的信息。
- INFO:重要或者您感兴趣的信息。
- WARN:系统可能出现潜在错误的信息。
- ERROR:系统出现错误和异常的信息。
类日志等级 填写日志名和级别。 输出模板 日志模板,可以选择系统模板或自定义模板。 说明 关于Flink与资源编排框架(例如Kubernetes、Yarn等)集成的相关选项详情,请参见Resource Orchestration Frameworks。 - 单击创建Session集群。Session集群创建完成后,您可以在部署界面或者作业调试界面选择此集群。