JobManager & TaskManager
配置场景
JobManager和TaskManager是Flink的主要组件,针对各种安全场景和性能场景,可以在客户端侧配置相关参数。
配置描述
主要配置项包括通信端口,内存管理,连接重试等。
| 
        参数  | 
      
        描述  | 
      
        默认值  | 
      
        是否必选配置  | 
     
|---|---|---|---|
| 
        taskmanager.rpc.port  | 
      
        TaskManager的IPC端口范围。  | 
      
        默认值为32326-32390。  | 
      
        否  | 
     
| 
        client.rpc.port  | 
      
        Flink client端Akka system监听端口。  | 
      
        默认值为32651-32720。  | 
      
        否  | 
     
| 
        taskmanager.data.port  | 
      
        TaskManager数据交换端口范围。  | 
      
        默认值为32391-32455。  | 
      
        否  | 
     
| 
        taskmanager.data.ssl.enabled  | 
      
        TaskManager之间数据传输是否使用SSL加密,仅在全局开关security.ssl开启时有效。  | 
      
        false  | 
      
        否  | 
     
| 
        jobmanager.heap.size  | 
      
        JobManager堆内存大小,yarn-session模式下只能使用-jm参数传递,yarn-cluster模式下只能使用-yjm参数传递,如果小于YARN配置文件中yarn.scheduler.minimum-allocation-mb大小,则使用YARN配置中的值。单位:B/KB/MB/GB/TB。  | 
      
        1024mb  | 
      
        否  | 
     
| 
        taskmanager.heap.size  | 
      
        TaskManager堆内存大小,yarn-session模式下只能使用-tm参数传递,yarn-cluster模式下只能使用-ytm参数传递,如果小于YARN配置文件中yarn.scheduler.minimum-allocation-mb大小,则使用YARN配置中的值。单位:B/KB/MB/GB/TB。  | 
      
        1024mb  | 
      
        否  | 
     
| 
        taskmanager.numberOfTaskSlots  | 
      
        TaskManager占用的slot数,一般配置成节点的核数,yarn-session模式下只能使用-s参数传递,yarn-cluster模式下只能使用-ys参数传递。  | 
      
        1  | 
      
        否  | 
     
| 
        parallelism.default  | 
      
        默认并行度,用于未指定并行度的作业。  | 
      
        1  | 
      
        否  | 
     
| 
        taskmanager.network.numberOfBuffers  | 
      
        TaskManager网络传输缓冲栈数量,如果作业运行中出错提示系统中可用缓冲不足,可以增加这个配置项的值。  | 
      
        2048  | 
      
        否  | 
     
| 
        taskmanager.memory.fraction  | 
      
        TaskManager在JVM堆内存中保留空间的比例,此内存用于排序,哈希表和中间状态的缓存。  | 
      
        0.7  | 
      
        否  | 
     
| 
        taskmanager.memory.off-heap  | 
      
        TaskManager是否使用堆外内存,此内存用于排序,哈希表和中间状态的缓存。建议对于大内存,开启此配置提高内存操作的效率。  | 
      
        false  | 
      
        是  | 
     
| 
        taskmanager.memory.segment-size  | 
      
        内存管理器和网络堆栈使用的内存缓冲区大小。单位:bytes。  | 
      
        32768  | 
      
        否  | 
     
| 
        taskmanager.memory.preallocate  | 
      
        TaskManager是否在启动时分配保留内存空间。当开启堆外内存时,建议开启此配置项。  | 
      
        false  | 
      
        否  | 
     
| 
        taskmanager.debug.memory.startLogThread  | 
      
        调试Flink内存和GC相关问题时可开启,TaskManager会定时采集内存和GC的统计信息,包括当前堆内,堆外,内存池的使用率和GC时间。  | 
      
        false  | 
      
        否  | 
     
| 
        taskmanager.debug.memory.logIntervalMs  | 
      
        TaskManager定时采集内存和GC的统计信息的采集间隔。  | 
      
        0  | 
      
        否  | 
     
| 
        taskmanager.maxRegistrationDuration  | 
      
        TaskManager向JobManager注册自己的最长时间,如果超过时间,TaskManager会关闭。  | 
      
        5 min  | 
      
        否  | 
     
| 
        taskmanager.initial-registration-pause  | 
      
        两次连续注册的初始间隔时间。该值需带一个时间单位(ms/s/min/h/d)(比如5秒)。  | 
      
        500ms 
         说明: 
         时间数值和单位之间有半角字符空格。ms/s/m/h/d表示毫秒、秒、分钟、小时、天。  | 
      
        否  | 
     
| 
        taskmanager.max-registration-pause  | 
      
        TaskManager注册失败最大重试间隔。单位:ms/s/m/h/d。  | 
      
        30s  | 
      
        否  | 
     
| 
        taskmanager.refused-registration-pause  | 
      
        TaskManager注册连接被JobManager拒绝后的重试间隔。单位:ms/s/m/h/d。  | 
      
        10s  | 
      
        否  | 
     
| 
        task.cancellation.interval  | 
      
        两次连续任务取消操作的间隔时间。单位:ms。  | 
      
        30000  | 
      
        否  | 
     
| 
        classloader.resolve-order  | 
      
        从用户代码加载类时定义类解析策略,这意味着是首先检查用户代码jar(“child-first”)还是应用程序类路径(“parent-first”)。默认设置指示首先从用户代码jar加载类,这意味着用户代码jar可以包含和加载不同于Flink使用的(依赖)依赖项。  | 
      
        child-first  | 
      
        否  | 
     
| 
        slot.idle.timeout  | 
      
        Slot Pool中空闲Slot的超时时间(以ms为单位)。  | 
      
        50000  | 
      
        否  | 
     
| 
        slot.request.timeout  | 
      
        从Slot Pool请求Slot的超时(以ms为单位)。  | 
      
        300000  | 
      
        否  | 
     
| 
        task.cancellation.timeout  | 
      
        取消任务超时时间(以ms为单位),超时后会触发TaskManager致命错误。设置为0,取消任务卡住则不会报错。  | 
      
        180000  | 
      
        否  | 
     
| 
        taskmanager.network.detailed-metrics  | 
      
        启用网络队列长度的详细指标监控。  | 
      
        false  | 
      
        否  | 
     
| 
        taskmanager.network.memory.buffers-per-channel  | 
      
        每个传出/传入通道(子分区/输入通道)使用的最大网络缓冲区数.在基于信用的流量控制模式下,这表示每个输入通道中有多少信用。它应配置至少2以获得良好的性能。1个缓冲区用于接收子分区中的飞行中数据,1个缓冲区用于并行序列化。  | 
      
        2  | 
      
        否  | 
     
| 
        taskmanager.network.memory.floating-buffers-per-gate  | 
      
        每个输出/输入门(结果分区/输入门)使用的额外网络缓冲区数。在基于信用的流量控制模式中,这表示在所有输入通道之间共享多少浮动信用。浮动缓冲区基于积压(子分区中的实时输出缓冲区)反馈来分布,并且可以帮助减轻由子分区之间的不平衡数据分布引起的背压。如果节点之间的往返时间较长和/或群集中的机器数量较多,则应增加此值。  | 
      
        8  | 
      
        否  | 
     
| 
        taskmanager.network.memory.fraction  | 
      
        用于网络缓冲区的JVM内存的占比。这决定了TaskManager可以同时拥有多少流数据交换通道以及通道缓冲的程度。如果作业被拒绝或者收到系统没有足够缓冲区的警告,请增加此值或“taskmanager.network.memory.min”和“taskmanager.network.memory.max”。另请注意,“taskmanager.network.memory.min”和“taskmanager.network.memory.max”可能会覆盖此占比。  | 
      
        0.1  | 
      
        否  | 
     
| 
        taskmanager.network.memory.max  | 
      
        网络缓冲区的最大内存大小。该值需带一个大小单位(B/KB/MB/GB/TB)。  | 
      
        1 GB  | 
      
        否  | 
     
| 
        taskmanager.network.memory.min  | 
      
        网络缓冲区的最小内存大小。该值需带一个大小单位(B/KB/MB/GB/TB)。  | 
      
        64 MB  | 
      
        否  | 
     
| 
        taskmanager.network.request-backoff.initial  | 
      
        输入通道的分区请求的最小退避。  | 
      
        100  | 
      
        否  | 
     
| 
        taskmanager.network.request-backoff.max  | 
      
        输入通道的分区请求的最大退避。  | 
      
        10000  | 
      
        否  | 
     
| 
        taskmanager.registration.timeout  | 
      
        TaskManager注册的超时时间,在该时间内未成功注册,TaskManager将终止。该值需带一个时间单位(ms/s/min/h/d)。  | 
      
        5 min  | 
      
        否  | 
     
| 
        resourcemanager.taskmanager-timeout  | 
      
        释放空闲TaskManager的超时(以ms为单位)。  | 
      
        30000  | 
      
        否  |