Flink 参数配置和常见参数调优

Stella981
• 阅读 969

点击上方蓝色字体,选择“设为星标

回复”资源“获取更多资源

Flink 参数配置和常见参数调优

Flink 参数配置和常见参数调优

大数据技术与架构

点击右侧关注,大数据开发领域最强公众号!

Flink 参数配置和常见参数调优

Flink 参数配置和常见参数调优

暴走大数据

点击右侧关注,暴走大数据!

Flink 参数配置和常见参数调优

Flink参数配置

  • jobmanger.rpc.address jm的地址。

  • jobmanager.rpc.port jm的端口号。

  • jobmanager.heap.mb jm的堆内存大小。不建议配的太大,1-2G足够。

  • taskmanager.heap.mb tm的堆内存大小。大小视任务量而定。需要存储任务的中间值,网络缓存,用户数据等。

  • taskmanager.numberOfTaskSlots slot数量。在yarn模式使用的时候会受到yarn.scheduler.maximum-allocation-vcores值的影响。此处指定的slot数量如果超过yarn的maximum-allocation-vcores,flink启动会报错。在yarn模式,flink启动的task manager个数可以参照如下计算公式:

num_of_tm = ceil(parallelism / slot)  即并行度除以slot个数,结果向上取整。

  • parallelsm.default 任务默认并行度,如果任务未指定并行度,将采用此设置。

  • web.port Flink web ui的端口号。

  • jobmanager.archive.fs.dir 将已完成的任务归档存储的目录。

  • history.web.port 基于web的history server的端口号。

  • historyserver.archive.fs.dir history server的归档目录。该配置必须包含jobmanager.archive.fs.dir配置的目录,以便history server能够读取到已完成的任务信息。

  • historyserver.archive.fs.refresh-interval 刷新存档作业目录时间间隔

  • state.backend 存储和检查点的后台存储。可选值为rocksdb filesystem hdfs。

  • state.backend.fs.checkpointdir 检查点数据文件和元数据的默认目录。

  • state.checkpoints.dir 保存检查点目录。

  • state.savepoints.dir save point的目录。

  • state.checkpoints.num-retained 保留最近检查点的数量。

  • state.backend.incremental 增量存储。

  • akka.ask.timeout Job Manager和Task Manager通信连接的超时时间。如果网络拥挤经常出现超时错误,可以增大该配置值。

  • akka.watch.heartbeat.interval 心跳发送间隔,用来检测task manager的状态。

  • akka.watch.heartbeat.pause 如果超过该时间仍未收到task manager的心跳,该task manager 会被认为已挂掉。

  • taskmanager.network.memory.max 网络缓冲区最大内存大小。

  • taskmanager.network.memory.min 网络缓冲区最小内存大小。

  • taskmanager.network.memory.fraction 网络缓冲区使用的内存占据总JVM内存的比例。如果配置了taskmanager.network.memory.maxtaskmanager.network.memory.min,本配置项会被覆盖。

  • fs.hdfs.hadoopconf hadoop配置文件路径(已被废弃,建议使用HADOOP_CONF_DIR环境变量)

  • yarn.application-attempts job失败尝试次数,主要是指job manager的重启尝试次数。该值不应该超过yarn-site.xml中的yarn.resourcemanager.am.max-attemps的值。

  • high-availability: zookeeper 使用zookeeper负责HA实现

  • high-availability.zookeeper.path.root: /flink flink信息在zookeeper存储节点的名称

  • high-availability.zookeeper.quorum: zk1,zk2,zk3 zookeeper集群节点的地址和端口

  • high-availability.storageDir: hdfs://nameservice/flink/ha/ job manager元数据在文件系统储存的位置,zookeeper仅保存了指向该目录的指针。

  • metrics.reporters: prom

  • metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter

  • metrics.reporter.prom.port: 9250-9260

Kafka相关调优配置

  • linger.ms/batch.size 这两个配置项配合使用,可以在吞吐量和延迟中得到最佳的平衡点。batch.size是kafka producer发送数据的批量大小,当数据量达到batch size的时候,会将这批数据发送出去,避免了数据一条一条的发送,频繁建立和断开网络连接。但是如果数据量比较小,导致迟迟不能达到batch.size,为了保证延迟不会过大,kafka不能无限等待数据量达到batch.size的时候才发送。为了解决这个问题,引入了linger.ms配置项。当数据在缓存中的时间超过linger.ms时,无论缓存中数据是否达到批量大小,都会被强制发送出去。

ack 数据源是否需要kafka得到确认。all表示需要收到所有ISR节点的确认信息,1表示只需要收到kafka leader的确认信息,0表示不需要任何确认信息。该配置项需要对数据精准性和延迟吞吐量做出权衡。

Kafka topic分区数和Flink并行度的关系

  • Flink kafka source的并行度需要和kafka topic的分区数一致。最大化利用kafka多分区topic的并行读取能力。

Yarn相关调优配置

  • yarn.scheduler.maximum-allocation-vcores

  • yarn.scheduler.minimum-allocation-vcores

Flink单个task manager的slot数量必须介于这两个值之间

  • yarn.scheduler.maximum-allocation-mb

  • yarn.scheduler.minimum-allocation-mb

Flink的job manager 和task manager内存不得超过container最大分配内存大小。

yarn.nodemanager.resource.cpu-vcores yarn的虚拟CPU内核数,建议设置为物理CPU核心数的2-3倍,如果设置过少,会导致CPU资源无法被充分利用,跑任务的时候CPU占用率不高。

欢迎点赞+收藏+转发朋友圈素质三连

Flink 参数配置和常见参数调优

文章不错?点个【在看】吧!** 👇**

本文分享自微信公众号 - 大数据技术与架构(import_bigdata)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Stella981 Stella981
3年前
ClickHouse大数据领域企业级应用实践和探索总结
点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源!(https://oscimg.oschina.net/oscnet/bb00e5f54a164cb9827f1dbccdf87443.jpg)!(https://oscimg.oschina.net/oscnet/dc8da835ff1b4
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Wesley13 Wesley13
3年前
2021年要做的大事,25个大数据必知领域全面开启更新
点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源!(https://oscimg.oschina.net/oscnet/42781f98ab4944368ad1c15a8d27aff1.jpg)!(https://oscimg.oschina.net/oscnet/80fc2bcb43ac4fa0
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这