1.美图
2.概述
Flink的master与worker进程有不同的内存需求。Master进程主要管理计算资源(也就是ResourceManager)以及协调applications的执行(也就是JobManager)。而worker进程的需要进行各类计算并处理数据(可能是大量数据)。
一般来说,master进程的内存需求并不是特别大。默认情况下,它使用1GB的JVM堆内存。如果一个master进程需要管理多个applications,或者有多个operators的一个application,则我们可能需要通过jobmanager.heap.size配置增加它的堆内存。
配置worker进程的内存时,考虑的方面会更多,因为其中会有不同的组件分配不同类型的内存资源。最重要的是JVM 堆内存,通过taskmanager.heap.size进行配置。堆内存由所有objects使用,包括TaskManager runtime、operators、application的functions、以及传输的数据。若一个应用使用的是in-memory或是filesystem 的state backend,则state数据也会存储在JVM。需要注意的是单个task也是有可能消耗掉它所处JVM所有堆内存的。为每个TaskManager仅配置一个slot,会有更好的资源分