Hi xinghalo,
第一点,限制最大slot的申请数量,千呼万唤终于在1.11有了这个feature.[1]
配置ResourceManagerOptions.MAX_SLOT_NUM(slotmanager.number-of-slots.max).
1.11即将发布。
第二点,
2.1 Batch作业默认是全blocking的边,所以Slot share是不生效的,在1.11会有更灵活的边配置:[2]
2.2 关于slotsharingGroup,两个source
在batch的配置下,是无法slotsharing的,这是由于table的batch主动配置的。[3]
[1]
https://issues.apache.org/jira/browse/FLINK-16605[2]
https://ci.apache.org/projects/flink/flink-docs-master/dev/table/config.html#table-exec-shuffle-mode[3]
https://github.com/apache/flink/blob/1276fa655ba46808807dd7ffef169ae1ff51a41d/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/graph/StreamGraph.java#L226Best,
Jingsong Lee
On Wed, May 20, 2020 at 2:13 PM 111 <
[hidden email]> wrote:
> Hi,
>
>
> 各位好,最近在使用Flink SQL实现离线处理时,遇到资源占用过多的问题:
> 1 由于之前一个taskmanager配置了多个slot,导致slot之间内存抢占溢出的问题,后来每个taskmanager就配置了一个slot
> 2 有的sql非常复杂,需要读取多个hive source,我们配置了开启hive推断并配置最大的并行度为10;
> 3 当多个操作节点并行时,一个普通的任务可能需要申请上百个slot
> 直接导致yarn集群资源被耗光。
>
>
> 想了解下,针对slot是否有相关配置,限制最大slot的申请数量,使得不同任务可以共享slot执行。
>
>
> 另外,关于slotsharingGroup有点疑问,slotsharinggroup是不是仅针对单个source与下游的function。比如:
> Source[4] —> map[4] —> reduce[3],这三个任务可以进行slotsharing,此时需要的最大slot是4。
> 但是如果source包含2个,此时两个source是无法进行slotsharing的,此时需要的最大slot是8。
>
>
> Best,
> xinghalo
--
Best, Jingsong Lee