关于第一个问题,最好细化一下【各种问题】是什么问题。
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>应用
>
>

回复