flink-windows-state

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

flink-windows-state

宁吉浩

hi,all
最近在使用flink遇到了问题,问题描述如下:
checkpoint失败,jm报tm心跳丢失,然后重新开启tm,不一会yarn上就先后开启了多个tm。
数据量并不大,给的内存也足够,tm的内存都被沾满了,不管给多少运行到一定时间就会满,就会出现上述情况。
正好跑了很多程序,有带windows 也有不带的,在这里发现了端倪,带windows的程序checkpoint的文件非常之大,给我的感觉是把窗口内的数据都加入到状态了。
个人推测是state把窗口接收到的元素都落盘了。

windows的半小时一次,滚动,非滑动。
checkpoint是1分钟一次。
有没有人遇到过这种情况?

ps: 最重要的问题是yarn又创建了tm,有人可以分享一下这块吗?
感觉这是个定时炸弹,tm仍在运行,应该是假死状态,然后又在yarn上申请容器创建tm,感觉这样下去集群都会崩溃

Reply | Threaded
Open this post in threaded view
|

Re: flink-windows-state

熊云昆
你的state是用rocksdb存储的吗?


| |
熊云昆
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

On 10/13/2020 18:20, 宁吉浩 wrote:

hi,all
最近在使用flink遇到了问题,问题描述如下:
checkpoint失败,jm报tm心跳丢失,然后重新开启tm,不一会yarn上就先后开启了多个tm。
数据量并不大,给的内存也足够,tm的内存都被沾满了,不管给多少运行到一定时间就会满,就会出现上述情况。
正好跑了很多程序,有带windows 也有不带的,在这里发现了端倪,带windows的程序checkpoint的文件非常之大,给我的感觉是把窗口内的数据都加入到状态了。
个人推测是state把窗口接收到的元素都落盘了。

windows的半小时一次,滚动,非滑动。
checkpoint是1分钟一次。
有没有人遇到过这种情况?

ps: 最重要的问题是yarn又创建了tm,有人可以分享一下这块吗?
感觉这是个定时炸弹,tm仍在运行,应该是假死状态,然后又在yarn上申请容器创建tm,感觉这样下去集群都会崩溃

Reply | Threaded
Open this post in threaded view
|

Re: flink-windows-state

孟小鹏
贴代码看看?



发自我的iPhone


------------------ Original ------------------
From: 熊云昆 <[hidden email]&gt;
Date: Tue,Oct 13,2020 6:42 PM
To: 宁吉浩 <[hidden email]&gt;
Cc: user-zh <[hidden email]&gt;
Subject: Re: flink-windows-state



你的state是用rocksdb存储的吗?


| |
熊云昆
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

On 10/13/2020 18:20, 宁吉浩 wrote:

hi,all
最近在使用flink遇到了问题,问题描述如下:
checkpoint失败,jm报tm心跳丢失,然后重新开启tm,不一会yarn上就先后开启了多个tm。
数据量并不大,给的内存也足够,tm的内存都被沾满了,不管给多少运行到一定时间就会满,就会出现上述情况。
正好跑了很多程序,有带windows 也有不带的,在这里发现了端倪,带windows的程序checkpoint的文件非常之大,给我的感觉是把窗口内的数据都加入到状态了。
个人推测是state把窗口接收到的元素都落盘了。

windows的半小时一次,滚动,非滑动。
checkpoint是1分钟一次。
有没有人遇到过这种情况?

ps: 最重要的问题是yarn又创建了tm,有人可以分享一下这块吗?
感觉这是个定时炸弹,tm仍在运行,应该是假死状态,然后又在yarn上申请容器创建tm,感觉这样下去集群都会崩溃
Reply | Threaded
Open this post in threaded view
|

Re: flink-windows-state

Yun Tang
Hi

这里涉及到的问题比较多。

  1.  为什么心跳会超时?是因为Full GC么,如果是使用的FsStateBackend/MemoryStateBackend,这是比较好解释的,因为数据在JVM堆上。如果使用的是RocksDB,这里是解释不通的。
  2.  window确实是使用state来存储数据,如果认为自己的state太大的话,是不是因为使用不当呢?可以参考文档 [1] 进行调优
  3.  仍在运行的TM里面在做什么呢,为什么没有被JM释放,需要检查相关孤儿TM的日志以及jstack查看进程操作判断。

[1] https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/operators/windows.html#useful-state-size-considerations

祝好
唐云

________________________________
From: 孟小鹏 <[hidden email]>
Sent: Tuesday, October 13, 2020 18:51
To: user-zh <[hidden email]>
Subject: Re: flink-windows-state

贴代码看看?



发自我的iPhone


------------------ Original ------------------
From: 熊云昆 <[hidden email]&gt;
Date: Tue,Oct 13,2020 6:42 PM
To: 宁吉浩 <[hidden email]&gt;
Cc: user-zh <[hidden email]&gt;
Subject: Re: flink-windows-state



你的state是用rocksdb存储的吗?


| |
熊云昆
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

On 10/13/2020 18:20, 宁吉浩 wrote:

hi,all
最近在使用flink遇到了问题,问题描述如下:
checkpoint失败,jm报tm心跳丢失,然后重新开启tm,不一会yarn上就先后开启了多个tm。
数据量并不大,给的内存也足够,tm的内存都被沾满了,不管给多少运行到一定时间就会满,就会出现上述情况。
正好跑了很多程序,有带windows 也有不带的,在这里发现了端倪,带windows的程序checkpoint的文件非常之大,给我的感觉是把窗口内的数据都加入到状态了。
个人推测是state把窗口接收到的元素都落盘了。

windows的半小时一次,滚动,非滑动。
checkpoint是1分钟一次。
有没有人遇到过这种情况?

ps: 最重要的问题是yarn又创建了tm,有人可以分享一下这块吗?
感觉这是个定时炸弹,tm仍在运行,应该是假死状态,然后又在yarn上申请容器创建tm,感觉这样下去集群都会崩溃