开发者社区> 问答> 正文

有什么方法增加任务管理器的数量而不是每个任务管理器的任务槽?

存在两个影响任务可用资源量的维度:

jobmanager的数量
TaskManager可用的任务槽数。
每个TaskManager有一个插槽意味着每个任务组在一个单独的JVM中运行(例如,可以在一个单独的容器中启动)。拥有多个插槽意味着更多子任务共享同一个JVM。同一JVM中的任务共享TCP连接(通过多路复用)。它们还可以共享数据集和数据结构,从而减少每任务开销。

在文档中使用这一行,似乎总是错误地增加每个任务管理器的任务槽数而不是增加任务管理器的数量。

具体方案:如果我在Kubernetes中部署了一个作业集群(让我们假设有16个CPU核心可用)和一个由一个源+一个映射函数+一个接收器组成的管道,那么我将默认使用一个具有16个可用插槽的TaskManager到那个TaskManager。

这是最佳配置吗?是否有一种情况是每个插槽有一个插槽,或者可能是TaskManager和插槽的组合,可以利用所有16​​个CPU内核?

展开
收起
flink小助手 2018-12-13 14:39:34 2189 0
1 条回答
写回答
取消 提交回答
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

    没有最佳配置,因为通常无法定义“最佳”。每个TM具有单个插槽的配置提供了良好的隔离,并且通常更易于管理和推理。

    如果您运行多个作业,则多插槽配置可能会将不同作业的任务计划为一个TM。如果TM发生故障,例如,由于两个任务中的任何一个消耗了太多内存,两个作业都将重新启动。另一方面,每个TM运行一个插槽可能会留下更多未使用的内存。如果每个群集只运行一个作业,则每个TM的多个插槽可能没问题。

    2019-07-17 23:20:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载