发送时间: 2020年9月7日 星期一 12:50
> 收件人: user-zh@flink.apache.org
> 主题: Re: 从Savepoint/Checkpoint恢复时 keyedstate中部分数据无法被读取
>
> Hi
>
> 首先,transient ListState 这种用法绝对是没有问题的,你可以在Flink源码中找到大量的使用例子 [1]
>
> 可以排查的思路
>
> 1. 你的state是否开启了TTL呢
> 2. 能否在写入的时候,进行打印,然后在get会空iterator时进
-tests/src/test/java/org/apache/flink/test/state/operator/restore/keyed/KeyedJob.java#L158
祝好
唐云
From: Liu Rising
Sent: Sunday, September 6, 2020 17:45
To: user-zh@flink.apache.org
Subject: Re: 从Savepoint/Checkpoint恢复时 keyedstate中部分数据无法被读取
Hi 唐云
以下是state定义以及初始化的
Hi 唐云
以下是state定义以及初始化的code
public class FlinkKeyedProcessFunction extends KeyedProcessFunction, Tuple2> {
private static final Logger LOG =
LoggerFactory.getLogger(FlinkKeyedProcessFunction.class);
...
private final ParameterTool params;
private transient ListState
/Checkpoint恢复时 keyedstate中部分数据无法被读取
Hi
找到原因了。
问题在于在定义ListState时使用了transient关键字,如下。
private transient ListState state;
去掉了transient之后,问题解决。
虽然不太清粗为何transient会造成这种情况。
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Hi
找到原因了。
问题在于在定义ListState时使用了transient关键字,如下。
private transient ListState state;
去掉了transient之后,问题解决。
虽然不太清粗为何transient会造成这种情况。
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Hi
按理说 checkpoint/savepoint 有的数据,正常恢复后是可以读取到的。
1 正常从 checkpoint/savepoint 恢复了吗?
2 获取 state 的时候,key 是同一个 key 吗?
Best,
Congxian
Liu Rising 于2020年9月3日周四 上午9:28写道:
> 版本: 1.9
>
> 问题:
> 当从savepoint或者checkpoint恢复flink job时,发现部分keyedState中的数据丢失。
> 这里我们使用的是ListState,里面存储的是ObjectNode(Jackson
版本: 1.9
问题:
当从savepoint或者checkpoint恢复flink job时,发现部分keyedState中的数据丢失。
这里我们使用的是ListState,里面存储的是ObjectNode(Jackson DataBinding)类型的对象。
查log发现部分key的 listState.get() 返回空的iterator。
然而使用State Process API确认State的内容时, 发现上述这些key对应的数据是存在于State中的。
求问各位大佬这种情况是怎么回事?应该如何排查
谢谢
--
Sent from: