Flink on Yarn性能优化指南

tamoadmin 热门赛事 2024-04-25 18 0

Flink

on

Flink on Yarn性能优化指南

Yarn性能优化指南

Flink

on

Flink on Yarn性能优化指南

Yarn是一种将Apache

Flink应用程序部署在Apache

Hadoop

Yarn平台上的方法。通过Flink

on

Flink on Yarn性能优化指南

Yarn模式,用户可以直接向Hadoop集群提交任务,而无需单独启动Flink进程。为了充分利用Flink

on

Flink on Yarn性能优化指南

Yarn的优势并提高程序性能,本文将为您提供一份详细的Flink

on

Flink on Yarn性能优化指南

Yarn性能优化指南。

一、Flink

on

Flink on Yarn性能优化指南

Yarn基本原理

Flink

on

Flink on Yarn性能优化指南

Yarn的运行模式主要有两种:

1.YarnSession:先在Yarn上启动一个Flink集群,然后向该集群提交Flink任务;

2.FlinkRun:每次提交任务时,在Yarn上新创建一个Flink集群,用于运行该任务,每个任务在一个独立的Flink集群上运行。

Flink

on

Flink on Yarn性能优化指南

Yarn的执行过程主要包括以下几个步骤:

1.Flink客户端检查请求的资源(目前为containers和memory)是否可用,并将包含Flink相关jar包与配置上传到HDFS注册为container的资源;

2.Flink客户端向ResourceManager申请一个YarnContainer启动ApplicationMaster(AM),同时在该container中运行FlinkJobManager;

3.AM根据JobManager生成一个新的Flink配置文件,用于启动的TaskManager,并将该配置文件上传到HDFS注册为container的资源;

4.由AM申请containers运行FlinkTaskManager,这些container会从HDFS上下载jar文件和已修改的配置文件。

二、Flink

on

Flink on Yarn性能优化指南

Yarn内存调优

Yarn中TaskManager内存分配原理如下:

1.通过ytm传入的内存实际是container占用的总内存,TaskManager可使用的内存为:`Container预留的非TM内存占设定的TM内存的比例,默认值0.25;containerized.heapcutoffratio:0.25Container预留的非TM内存的最小值,默认值600MB;ontainerized.heapcutoffmin:600mb`;

2.TaskManager中内存主要从物理上分为两块:Onheap与Offheap,其中Onheap部分用于启动JVM进程;

3.从逻辑上分为三块:网络缓存、托管内存与空闲内存,其中托管内存穿插于堆内外。

网络缓冲区内存分配逻辑为:

1.`network_buffer_memory=min[taskmanager.network.memory.max,max(taskmanager.network.memory.min,tm_total_memory*taskmanager.network.memory.fraction)]`

三、Flink

on

Flink on Yarn性能优化指南

Yarn性能优化策略

1.调整并行度:合理调整Flink任务的并行度,可以提高任务执行效率。可以通过设置`taskslots`参数来调整并行度,一般设置为节点的CPU数,但要保证每个slot的内存够用。

2.调整资源分配:根据任务的实际需求,合理调整Flink

on

Flink on Yarn性能优化指南

Yarn中JobManager和TaskManager的内存分配。可以通过调整`yjm`和`ytm`参数来实现。

3.调整网络缓冲区:根据任务的实际需求,合理调整网络缓冲区的大小。可以通过调整`taskmanager.network.memory.fraction`、`taskmanager.network.memory.min`和`taskmanager.network.memory.max`参数来实现。

4.调整托管内存:根据任务的实际需求,合理调整托管内存的大小。可以通过调整`taskmanager.memory.fraction`、`taskmanager.memory.min`和`taskmanager.memory.max`参数来实现。

5.调整垃圾回收策略:合理调整JVM垃圾回收策略,可以提高Flink

on

Flink on Yarn性能优化指南

Yarn任务的性能。可以根据实际情况选择合适的垃圾回收算法,并调整相关参数。

总之,要根据具体的任务需求和环境条件,综合运用以上优化策略,实现Flink

on

Flink on Yarn性能优化指南

Yarn性能的最大化提升。在实际应用过程中,还需要不断测试和调整,以达到最佳性能效果。