关于第一个问题,最好细化一下【各种问题】是什么问题。 1、这个RichMapFunction的并发度上不去,只能整到4,并发度上去后各种问题,但从主机内存以及分配给taskmanager的内存足够;
现象就是: 某个task动不动就fail,然后整个job尝试重新create-->running,第二个问题的解决影响第一个问题,处理性能受第一个问题的影响,这个task的并发度死活都上不去,导致整体的Job的数据处理速度上不去。 Heartbeat超时,这个已经调大。 #配置超时 akka.ask.timeout: 60 s 因我的sink都是使用checkpoint定期出发,保存到hdfs,但flink有声明只保证集群内部的state是支持fail-over。对于sink为hdfs并没有很好的fail-over后接着hdfs上状态为ingress的文件接着处理,导致数据不准确,hdfs上也有脏数据。 我的job从业务上非常在意结果数据的精确度,每次遇到fail的,需要查看task和job的log,调整并行度和优化算法。 存在第三个问题:定期触发的checkpoint超越window的限制,提前触发 3、我的job是 A数据―>key by(key1)-->window1(30 minutes)-->reduce1+sink(hdfs)-->key by(key2)-->window2 (60 minutes) -->reduce2-->sink(hdfs) Checkpoint采取5minutes定期触发,windows1还能基本遵循契约在每30分钟触发reduce1,但reduce2就不是了 基本上在windows1完成30分钟后,立刻触发,并且在reduce2上有看到输入数据量。 这个和window的初衷不吻合。 另外这种类似的两个阶段的级联带窗口聚合操作,对于官方的hdfs的sink类RolloverInterval、InactivityInterval 并不能独立遵守契约,受定期checkpoint的触发影响。 这个导致的问题是,hdfs的块大小是128M翻滚一个新的文件。如果要提高hdfs的block的有效存储负载,最好是加大window,但系统受不了经常task出现fail,并且处理时间会变长。如果变小处理时间会相对高效很多,但hdfs的存储的payload会变差 另外一些现象是资源先后抢占的问题 整个集群的slot的是足够的。相同的job运行参数不同,先后启动jobA和jobB,前后时隔不超过10秒,但jobA处理数据的速度几乎是jobB的10倍。前者一分钟是1千万,后者是1百万 总的是flink要把介入点和观察点(source、sink、checkpoint、job finish/stop)开放给业务逻辑去干预 简单来说数据是无限的没有边界,但业务是有边界的,业务的边界通过开放接入点和观察点让业务处理。 上帝的归上帝、凯撒的归凯撒 发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用 发件人: tison<mailto:[email protected]> 发送时间: 2020年5月25日 11:48 收件人: user-zh<mailto:[email protected]> 抄送: Xintong Song<mailto:[email protected]> 主题: Re: RichMapFunction的问题 关于第一个问题,最好细化一下【各种问题】是什么问题。 关于第二个问题,我印象中目前 Flink 不支持按并发(SubTask)级别指定调度的位置,绕过方案可以是设置每个 TM 仅持有一个 Slot。这方面我抄送 Xintong,或许他的工作能帮到你。 Best, tison. [email protected] <[email protected]> 于2020年5月25日周一 上午11:29写道: > 遇到两个问题: > 背景:flink v1.10集群,几十台主机,每台CPU 16,内存 50G,整个job的并发是200 > 比如我的一个RichMapFunction在open中会加载存量数据。 > 因维度数据和主数据是非常离散的,因此这些维度数据都需要加载到内存 > > 1、这个RichMapFunction的并发度上不去,只能整到4,并发度上去后各种问题,但从主机内存以及分配给taskmanager的内存足够; > > > 2、这个RichMapFunction的所有slot都分配到同一个taskmanager上,即同一个主机。没有找到接口可以分散到不同的taskmanager上; > > 说简单点: > > 1、 对于RichMapFunction的open中需要加载大量维度数据,并发度上不去受什么影响; > > 2、 对于一个算子如何干预使其分散到不同的taskmanager上; > > > > > 发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用 > >
