You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 鱼子酱 <38...@qq.com> on 2020/08/03 05:50:43 UTC

Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

hi,您好:
我改回增量模式重新收集了一些数据:
1、数据处理速度:3000条每秒,是测试环境的,压力比较稳定,几乎没有波动
2、checkpoint是interval设置的是5秒
3、目前这个作业是每分钟一个窗口
4、并行度设置的1,使用on-yarn模式

刚启动的时候,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/6.png> 

18分钟后,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/9.png> 

checkpoints设置:
<http://apache-flink.147419.n8.nabble.com/file/t793/conf.png> 

hdfs上面大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/hdfs.png> 

页面上看到的大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/checkpoinsts1.png> 


Congxian Qiu wrote
> Hi   鱼子酱
>     能否把在使用增量 checkpoint 的模式下,截图看一下 checkpoint size 的走势呢?另外可以的话,也麻烦你在每次
> checkpoint 做完之后,到 hdfs 上 ls 一下 checkpoint 目录的大小。
>     另外有一个问题还需要回答一下,你的处理速度大概是多少,state 的更新频率能否评估一下呢?
> 
> Best,
> Congxian
> 
> 
> 鱼子酱 <

> 384939718@

>> 于2020年7月30日周四 上午10:43写道:
> 
>> 感谢!
>>
>> flink1.11.1版本里面,我尝试了下面两种backend,目前运行了20多个小时,
>> 能够看到状态的大小在一个区间内波动,没有发现一直增长的情况了。
>> StateBackend backend =new
>>
>> RocksDBStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
>> StateBackend backend =new
>>
>> FsStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
>>
>>
>> 这样看,有可能是RocksDBStateBackend增量模式这边可能存在一些问题。
>> RocksDBStateBackend:
>> &lt;http://apache-flink.147419.n8.nabble.com/file/t793/444.png&gt;
>> FsStateBackend:
>> &lt;http://apache-flink.147419.n8.nabble.com/file/t793/555.png&gt;
>>
>>
>>
>>
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>





--
Sent from: http://apache-flink.147419.n8.nabble.com/

Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

Posted by "chengyanan1008@foxmail.com" <ch...@foxmail.com>.
HI:
    请问这个问题有合理的解释吗,持续关注中。。。
 
发件人: 鱼子酱
发送时间: 2020-08-03 13:50
收件人: user-zh
主题: Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大
hi,您好:
我改回增量模式重新收集了一些数据:
1、数据处理速度:3000条每秒,是测试环境的,压力比较稳定,几乎没有波动
2、checkpoint是interval设置的是5秒
3、目前这个作业是每分钟一个窗口
4、并行度设置的1,使用on-yarn模式
 
刚启动的时候,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/6.png> 
 
18分钟后,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/9.png> 
 
checkpoints设置:
<http://apache-flink.147419.n8.nabble.com/file/t793/conf.png> 
 
hdfs上面大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/hdfs.png> 
 
页面上看到的大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/checkpoinsts1.png> 
 
 
Congxian Qiu wrote
> Hi   鱼子酱
>     能否把在使用增量 checkpoint 的模式下,截图看一下 checkpoint size 的走势呢?另外可以的话,也麻烦你在每次
> checkpoint 做完之后,到 hdfs 上 ls 一下 checkpoint 目录的大小。
>     另外有一个问题还需要回答一下,你的处理速度大概是多少,state 的更新频率能否评估一下呢?
> 
> Best,
> Congxian
> 
> 
> 鱼子酱 <
 
> 384939718@
 
>> 于2020年7月30日周四 上午10:43写道:
> 
>> 感谢!
>>
>> flink1.11.1版本里面,我尝试了下面两种backend,目前运行了20多个小时,
>> 能够看到状态的大小在一个区间内波动,没有发现一直增长的情况了。
>> StateBackend backend =new
>>
>> RocksDBStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
>> StateBackend backend =new
>>
>> FsStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
>>
>>
>> 这样看,有可能是RocksDBStateBackend增量模式这边可能存在一些问题。
>> RocksDBStateBackend:
>> http://apache-flink.147419.n8.nabble.com/file/t793/444.png&gt;
>> FsStateBackend:
>> http://apache-flink.147419.n8.nabble.com/file/t793/555.png&gt;
>>
>>
>>
>>
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>
 
 
 
 
 
--
Sent from: http://apache-flink.147419.n8.nabble.com/
 

Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

Posted by Congxian Qiu <qc...@gmail.com>.
Hi
   能否把 checkpoint 的 interval 调长一点再看看是否稳定呢?从 shared 目录的数据量看,有增长,后续基本持平。现在
Checkpointed Data Size 是增量的大小[1],而不是整个 checkpoint 的数据量的大小,如果 checkpoint
之间,数据改动很多的话,这个值会变大

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/ops/state/state_backends.html#%E5%A2%9E%E9%87%8F%E5%BF%AB%E7%85%A7
Best,
Congxian


op <52...@qq.com> 于2020年8月3日周一 下午2:18写道:

> &nbsp; &nbsp;
> 同问,我也遇到了状态越来越大的情况,使用的是1.11.0版本,用hdfs保存checkpoint,checkpoint间隔3分钟,
> 逻辑是按照 事件day 和 id 进行groupby
> 然后有十几个聚合指标,运行了7天左右,状态一直在增加,设置了失效时间,然后watermark看着也正常在走
> tConfig.setIdleStateRetentionTime(Time.minutes(1440),
> Time.minutes(1440+10))
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:
>                                                   "user-zh"
>                                                                     <
> 384939718@qq.com&gt;;
> 发送时间:&nbsp;2020年8月3日(星期一) 中午1:50
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
> 主题:&nbsp;Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大
>
>
>
> hi,您好:
> 我改回增量模式重新收集了一些数据:
> 1、数据处理速度:3000条每秒,是测试环境的,压力比较稳定,几乎没有波动
> 2、checkpoint是interval设置的是5秒
> 3、目前这个作业是每分钟一个窗口
> 4、并行度设置的1,使用on-yarn模式
>
> 刚启动的时候,如下:
> <http://apache-flink.147419.n8.nabble.com/file/t793/6.png&gt;
>
> 18分钟后,如下:
> <http://apache-flink.147419.n8.nabble.com/file/t793/9.png&gt;
>
> checkpoints设置:
> <http://apache-flink.147419.n8.nabble.com/file/t793/conf.png&gt;
>
> hdfs上面大小:
> <http://apache-flink.147419.n8.nabble.com/file/t793/hdfs.png&gt;
>
> 页面上看到的大小:
> <http://apache-flink.147419.n8.nabble.com/file/t793/checkpoinsts1.png&gt;
>
>
> Congxian Qiu wrote
> &gt; Hi&nbsp;&nbsp; 鱼子酱
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; 能否把在使用增量 checkpoint 的模式下,截图看一下 checkpoint
> size 的走势呢?另外可以的话,也麻烦你在每次
> &gt; checkpoint 做完之后,到 hdfs 上 ls 一下 checkpoint 目录的大小。
> &gt;&nbsp;&nbsp;&nbsp;&nbsp; 另外有一个问题还需要回答一下,你的处理速度大概是多少,state 的更新频率能否评估一下呢?
> &gt;
> &gt; Best,
> &gt; Congxian
> &gt;
> &gt;
> &gt; 鱼子酱 <
>
> &gt; 384939718@
>
> &gt;&gt; 于2020年7月30日周四 上午10:43写道:
> &gt;
> &gt;&gt; 感谢!
> &gt;&gt;
> &gt;&gt; flink1.11.1版本里面,我尝试了下面两种backend,目前运行了20多个小时,
> &gt;&gt; 能够看到状态的大小在一个区间内波动,没有发现一直增长的情况了。
> &gt;&gt; StateBackend backend =new
> &gt;&gt;
> &gt;&gt;
> RocksDBStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
> &gt;&gt; StateBackend backend =new
> &gt;&gt;
> &gt;&gt;
> FsStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
> &gt;&gt;
> &gt;&gt;
> &gt;&gt; 这样看,有可能是RocksDBStateBackend增量模式这边可能存在一些问题。
> &gt;&gt; RocksDBStateBackend:
> &gt;&gt; &amp;lt;
> http://apache-flink.147419.n8.nabble.com/file/t793/444.png&amp;gt;
> &gt;&gt; FsStateBackend:
> &gt;&gt; &amp;lt;
> http://apache-flink.147419.n8.nabble.com/file/t793/555.png&amp;gt;
> &gt;&gt;
> &gt;&gt;
> &gt;&gt;
> &gt;&gt;
> &gt;&gt; --
> &gt;&gt; Sent from: http://apache-flink.147419.n8.nabble.com/
> &gt;&gt;
>
>
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/

回复: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

Posted by op <52...@qq.com>.
&nbsp; &nbsp; 同问,我也遇到了状态越来越大的情况,使用的是1.11.0版本,用hdfs保存checkpoint,checkpoint间隔3分钟,
逻辑是按照 事件day 和 id 进行groupby 然后有十几个聚合指标,运行了7天左右,状态一直在增加,设置了失效时间,然后watermark看着也正常在走
tConfig.setIdleStateRetentionTime(Time.minutes(1440), Time.minutes(1440+10))




------------------&nbsp;原始邮件&nbsp;------------------
发件人:                                                                                                                        "user-zh"                                                                                    <384939718@qq.com&gt;;
发送时间:&nbsp;2020年8月3日(星期一) 中午1:50
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大



hi,您好:
我改回增量模式重新收集了一些数据:
1、数据处理速度:3000条每秒,是测试环境的,压力比较稳定,几乎没有波动
2、checkpoint是interval设置的是5秒
3、目前这个作业是每分钟一个窗口
4、并行度设置的1,使用on-yarn模式

刚启动的时候,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/6.png&gt; 

18分钟后,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/9.png&gt; 

checkpoints设置:
<http://apache-flink.147419.n8.nabble.com/file/t793/conf.png&gt; 

hdfs上面大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/hdfs.png&gt; 

页面上看到的大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/checkpoinsts1.png&gt; 


Congxian Qiu wrote
&gt; Hi&nbsp;&nbsp; 鱼子酱
&gt;&nbsp;&nbsp;&nbsp;&nbsp; 能否把在使用增量 checkpoint 的模式下,截图看一下 checkpoint size 的走势呢?另外可以的话,也麻烦你在每次
&gt; checkpoint 做完之后,到 hdfs 上 ls 一下 checkpoint 目录的大小。
&gt;&nbsp;&nbsp;&nbsp;&nbsp; 另外有一个问题还需要回答一下,你的处理速度大概是多少,state 的更新频率能否评估一下呢?
&gt; 
&gt; Best,
&gt; Congxian
&gt; 
&gt; 
&gt; 鱼子酱 <

&gt; 384939718@

&gt;&gt; 于2020年7月30日周四 上午10:43写道:
&gt; 
&gt;&gt; 感谢!
&gt;&gt;
&gt;&gt; flink1.11.1版本里面,我尝试了下面两种backend,目前运行了20多个小时,
&gt;&gt; 能够看到状态的大小在一个区间内波动,没有发现一直增长的情况了。
&gt;&gt; StateBackend backend =new
&gt;&gt;
&gt;&gt; RocksDBStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
&gt;&gt; StateBackend backend =new
&gt;&gt;
&gt;&gt; FsStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
&gt;&gt;
&gt;&gt;
&gt;&gt; 这样看,有可能是RocksDBStateBackend增量模式这边可能存在一些问题。
&gt;&gt; RocksDBStateBackend:
&gt;&gt; &amp;lt;http://apache-flink.147419.n8.nabble.com/file/t793/444.png&amp;gt;
&gt;&gt; FsStateBackend:
&gt;&gt; &amp;lt;http://apache-flink.147419.n8.nabble.com/file/t793/555.png&amp;gt;
&gt;&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt;
&gt;&gt; --
&gt;&gt; Sent from: http://apache-flink.147419.n8.nabble.com/
&gt;&gt;





--
Sent from: http://apache-flink.147419.n8.nabble.com/

Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

Posted by Storm☀️ <st...@163.com>.
在测试环境:
关闭增量chk,全量的state大小大约在:100M左右;
之前开启:我观察了一段时间,膨胀到5G,而且还一直在增长;
sql:
select sum(xx) group by 1 分钟窗口

过期时间设置的为:5-30min



--
Sent from: http://apache-flink.147419.n8.nabble.com/

Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

Posted by Yun Tang <my...@live.com>.
Hi @Storm

checkpoint的增量模式目前仅对RocksDB生效,这里的增量是指上传新产生的DB sst文件。而RocksDB的全量模式是将DB的有效kv进行序列化写出,除非有大量的数据没有compaction清理掉,否则不可能出现增量checkpoint size无限膨胀,而全量checkpoint正常的问题,你这里的无限膨胀的size范围是多大呢?

祝好
唐云
________________________________
From: Storm☀️ <st...@163.com>
Sent: Tuesday, December 22, 2020 19:52
To: user-zh@flink.apache.org <us...@flink.apache.org>
Subject: Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

唐云大佬好,
我关闭了chk的增量模式之后,chkstate确实不会再无线膨胀了。这个是我配置的不准确,还是一个已知问题呢



--
Sent from: http://apache-flink.147419.n8.nabble.com/

Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

Posted by Storm☀️ <st...@163.com>.
唐云大佬好,
我关闭了chk的增量模式之后,chkstate确实不会再无线膨胀了。这个是我配置的不准确,还是一个已知问题呢



--
Sent from: http://apache-flink.147419.n8.nabble.com/

Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

Posted by Yun Tang <my...@live.com>.
Hi

RocksDB 的文件更新策略是依赖于level-0的文件数目以及level-1 ~ level-N的每层文件总size,可以参照RocksDB社区关于conpaction的图文描述[1]。默认情况下level-1的target size 是256MB [2],也就是说level-1的总size在256MB以下时,应该是没有触发compaction来降低文件大小的。

从你的UI截图看,实际上checkpoint size很小,建议达到一定数据规模之后,再观察是否“状态越来越大”

[1] https://github.com/facebook/rocksdb/wiki/Leveled-Compaction#structure-of-the-files
[2] http://www.leviathan.vip/2018/03/05/Rocksdb%E7%9A%84Compact/

祝好
唐云

________________________________
From: chengyanan1008@foxmail.com <ch...@foxmail.com>
Sent: Friday, August 7, 2020 10:32
To: user-zh <us...@flink.apache.org>
Subject: Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大

HI:
    请问这个问题有合理的解释吗,持续关注中。。。

发件人: 鱼子酱
发送时间: 2020-08-03 13:50
收件人: user-zh
主题: Re: flink1.10.1/1.11.1 使用sql 进行group 和 时间窗口 操作后 状态越来越大
hi,您好:
我改回增量模式重新收集了一些数据:
1、数据处理速度:3000条每秒,是测试环境的,压力比较稳定,几乎没有波动
2、checkpoint是interval设置的是5秒
3、目前这个作业是每分钟一个窗口
4、并行度设置的1,使用on-yarn模式

刚启动的时候,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/6.png>

18分钟后,如下:
<http://apache-flink.147419.n8.nabble.com/file/t793/9.png>

checkpoints设置:
<http://apache-flink.147419.n8.nabble.com/file/t793/conf.png>

hdfs上面大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/hdfs.png>

页面上看到的大小:
<http://apache-flink.147419.n8.nabble.com/file/t793/checkpoinsts1.png>


Congxian Qiu wrote
> Hi   鱼子酱
>     能否把在使用增量 checkpoint 的模式下,截图看一下 checkpoint size 的走势呢?另外可以的话,也麻烦你在每次
> checkpoint 做完之后,到 hdfs 上 ls 一下 checkpoint 目录的大小。
>     另外有一个问题还需要回答一下,你的处理速度大概是多少,state 的更新频率能否评估一下呢?
>
> Best,
> Congxian
>
>
> 鱼子酱 <

> 384939718@

>> 于2020年7月30日周四 上午10:43写道:
>
>> 感谢!
>>
>> flink1.11.1版本里面,我尝试了下面两种backend,目前运行了20多个小时,
>> 能够看到状态的大小在一个区间内波动,没有发现一直增长的情况了。
>> StateBackend backend =new
>>
>> RocksDBStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
>> StateBackend backend =new
>>
>> FsStateBackend("hdfs:///checkpoints-data/"+yamlReader.getValueByKey("jobName").toString()+"/",false);
>>
>>
>> 这样看,有可能是RocksDBStateBackend增量模式这边可能存在一些问题。
>> RocksDBStateBackend:
>> http://apache-flink.147419.n8.nabble.com/file/t793/444.png&gt;
>> FsStateBackend:
>> http://apache-flink.147419.n8.nabble.com/file/t793/555.png&gt;
>>
>>
>>
>>
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>





--
Sent from: http://apache-flink.147419.n8.nabble.com/