Apache flink 弗林克工人任务分配不均

Apache flink 弗林克工人任务分配不均,apache-flink,Apache Flink,我有一个在大数据集上运行的Flink批处理作业。我的群集由25个节点组成,作为独立群集运行。其中一个关键步骤的并行度为70,我希望每个任务管理器在该步骤中获得2到3个插槽,相反,只使用了一半的工作人员,其中一些工作人员最多分配了8个插槽(这是他们可以获得的最大值) 除了对数据位置的影响外,另一个副作用是磁盘空间紧张。由于运行所有插槽的工作人员较少,因此与将插槽分布在集群的所有节点相比,每个插槽都必须存储更多的数据 我错过什么了吗?有没有办法强迫Flink在每个作业中尽可能多的TMs中分配插槽?目

我有一个在大数据集上运行的Flink批处理作业。我的群集由25个节点组成,作为独立群集运行。其中一个关键步骤的并行度为70,我希望每个任务管理器在该步骤中获得2到3个插槽,相反,只使用了一半的工作人员,其中一些工作人员最多分配了8个插槽(这是他们可以获得的最大值)

除了对数据位置的影响外,另一个副作用是磁盘空间紧张。由于运行所有插槽的工作人员较少,因此与将插槽分布在集群的所有节点相比,每个插槽都必须存储更多的数据


我错过什么了吗?有没有办法强迫Flink在每个作业中尽可能多的TMs中分配插槽?

目前,Flink不支持在可用的
任务管理器集中均匀分配任务。原因是弗林克认为每个插槽都是相等的。在未来,Flink社区计划添加更多的调度功能来解决这个问题


目前,我建议将单个操作员的并行性设置为集群中可用插槽的数量。这将保证集群中的所有计算机都能得到均衡使用。

谢谢。如果一份工作有多个任务,例如加入,然后是小组减少,我需要给他们每人50%的工作时间,这几乎就是我目前的情况,他们都只使用了一半的工人。尽管如此,用户界面告诉我,空闲插槽的数量比我想象的要多。也许我误解了什么。默认情况下,Flink支持插槽共享,允许操作员部署到同一个插槽中。这意味着每个联接子任务与同一插槽中的另一个reduce子任务一起运行。如果您不希望出现这种行为,则必须为其中一个运营商分配不同的插槽共享组名称。您好,谢谢您的回答。无论如何,我想在有多个业务逻辑要运行的情况下,选择最高的并行性并不方便,然后是不同的作业:这里,如果我们想在整个作业的不同节点上分散计算,它实际上取决于Flink及其任务分布。我已经将并行性设置为插槽总数(分布在两个节点上),但coGroup函数仍然仅在单个TaskManager(在一个节点上)上运行。我需要它将其传播到所有TaskManager,以最大限度地利用所有可用的CPU。您能否分享有关您正在运行的作业@ndtreviv的一些详细信息?同样,在这里,我们通过从Flink-1.3.2迁移到Flink-1.6.2记录了相同的特征。