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 曲洋 <qu...@126.com> on 2022/08/30 04:32:30 UTC

关于flink的state

各位好,
   我想请教两个问题:
1) flink的state是否可以在不同的算子共享,比如,第一个map我有一个state,到了第二个map我继续拿到这个state?
2) flink的state有没有不需要keyby的,因为想统计一个总量,还没有合适的key可以选择?


Re:Re: Re: 关于flink的state

Posted by 曲洋 <qu...@126.com>.
就是open什么时候被调用,当任务异常后自动重启或者状态数据迁移后,open会不会又打开一次,就是类似这种生命周期
state的范围除了我提到的,是否可以多个算子共享

在 2022-08-30 15:41:51,"yue ma" <ma...@gmail.com> 写道:
>我想你是想了解 task 的生命周期 ? 可以看看这个文档
>https://nightlies.apache.org/flink/flink-docs-master/docs/internals/task_lifecycle/
>, state 的范围具体是指什么问题呢 ? 感觉都可以在官方文档上找到答案
>
>
>曲洋 <qu...@126.com> 于2022年8月30日周二 14:50写道:
>
>> 了解了,我还想请教一下,比如open的生命周期,state的范围,这种要从什么地方可以了解到,我发现一个难点就是我甚至不知道怎么搜索
>>
>> 在 2022-08-30 14:34:57,"yanfei lei" <fr...@gmail.com> 写道:
>> >Hi,
>> >1) state无法在不同的算子共享,如yue ma的建议,或许可以把需要共享的部分存储在外部系统,然后在两个map里访问同一个外部系统以实现共享
>> >2) 除开operatorState,或许自定义一个总是返回相同值的keySelector,也可以把所有的key都聚合到一起。
>> >
>> >yue ma <ma...@gmail.com> 于2022年8月30日周二 14:20写道:
>> >
>> >> hi
>> >> 1) flink 内部的 state 算子之间是不可以共享的,所以你可能需要借助外部的存储(比如 redis)来做类似的事情
>> >> 2) 你可以看看 operatorState 的使用方式
>> >>
>> >>
>> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/state/#operator-state
>> >>
>> >>
>> >> 曲洋 <qu...@126.com> 于2022年8月30日周二 12:32写道:
>> >>
>> >> > 各位好,
>> >> >    我想请教两个问题:
>> >> > 1) flink的state是否可以在不同的算子共享,比如,第一个map我有一个state,到了第二个map我继续拿到这个state?
>> >> > 2) flink的state有没有不需要keyby的,因为想统计一个总量,还没有合适的key可以选择?
>> >> >
>> >> >
>> >>
>>

Re: Re: 关于flink的state

Posted by yue ma <ma...@gmail.com>.
我想你是想了解 task 的生命周期 ? 可以看看这个文档
https://nightlies.apache.org/flink/flink-docs-master/docs/internals/task_lifecycle/
, state 的范围具体是指什么问题呢 ? 感觉都可以在官方文档上找到答案


曲洋 <qu...@126.com> 于2022年8月30日周二 14:50写道:

> 了解了,我还想请教一下,比如open的生命周期,state的范围,这种要从什么地方可以了解到,我发现一个难点就是我甚至不知道怎么搜索
>
> 在 2022-08-30 14:34:57,"yanfei lei" <fr...@gmail.com> 写道:
> >Hi,
> >1) state无法在不同的算子共享,如yue ma的建议,或许可以把需要共享的部分存储在外部系统,然后在两个map里访问同一个外部系统以实现共享
> >2) 除开operatorState,或许自定义一个总是返回相同值的keySelector,也可以把所有的key都聚合到一起。
> >
> >yue ma <ma...@gmail.com> 于2022年8月30日周二 14:20写道:
> >
> >> hi
> >> 1) flink 内部的 state 算子之间是不可以共享的,所以你可能需要借助外部的存储(比如 redis)来做类似的事情
> >> 2) 你可以看看 operatorState 的使用方式
> >>
> >>
> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/state/#operator-state
> >>
> >>
> >> 曲洋 <qu...@126.com> 于2022年8月30日周二 12:32写道:
> >>
> >> > 各位好,
> >> >    我想请教两个问题:
> >> > 1) flink的state是否可以在不同的算子共享,比如,第一个map我有一个state,到了第二个map我继续拿到这个state?
> >> > 2) flink的state有没有不需要keyby的,因为想统计一个总量,还没有合适的key可以选择?
> >> >
> >> >
> >>
>

Re:Re: 关于flink的state

Posted by 曲洋 <qu...@126.com>.
了解了,我还想请教一下,比如open的生命周期,state的范围,这种要从什么地方可以了解到,我发现一个难点就是我甚至不知道怎么搜索

在 2022-08-30 14:34:57,"yanfei lei" <fr...@gmail.com> 写道:
>Hi,
>1) state无法在不同的算子共享,如yue ma的建议,或许可以把需要共享的部分存储在外部系统,然后在两个map里访问同一个外部系统以实现共享
>2) 除开operatorState,或许自定义一个总是返回相同值的keySelector,也可以把所有的key都聚合到一起。
>
>yue ma <ma...@gmail.com> 于2022年8月30日周二 14:20写道:
>
>> hi
>> 1) flink 内部的 state 算子之间是不可以共享的,所以你可能需要借助外部的存储(比如 redis)来做类似的事情
>> 2) 你可以看看 operatorState 的使用方式
>>
>> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/state/#operator-state
>>
>>
>> 曲洋 <qu...@126.com> 于2022年8月30日周二 12:32写道:
>>
>> > 各位好,
>> >    我想请教两个问题:
>> > 1) flink的state是否可以在不同的算子共享,比如,第一个map我有一个state,到了第二个map我继续拿到这个state?
>> > 2) flink的state有没有不需要keyby的,因为想统计一个总量,还没有合适的key可以选择?
>> >
>> >
>>

Re: 关于flink的state

Posted by yanfei lei <fr...@gmail.com>.
Hi,
1) state无法在不同的算子共享,如yue ma的建议,或许可以把需要共享的部分存储在外部系统,然后在两个map里访问同一个外部系统以实现共享
2) 除开operatorState,或许自定义一个总是返回相同值的keySelector,也可以把所有的key都聚合到一起。

yue ma <ma...@gmail.com> 于2022年8月30日周二 14:20写道:

> hi
> 1) flink 内部的 state 算子之间是不可以共享的,所以你可能需要借助外部的存储(比如 redis)来做类似的事情
> 2) 你可以看看 operatorState 的使用方式
>
> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/state/#operator-state
>
>
> 曲洋 <qu...@126.com> 于2022年8月30日周二 12:32写道:
>
> > 各位好,
> >    我想请教两个问题:
> > 1) flink的state是否可以在不同的算子共享,比如,第一个map我有一个state,到了第二个map我继续拿到这个state?
> > 2) flink的state有没有不需要keyby的,因为想统计一个总量,还没有合适的key可以选择?
> >
> >
>

Re:Re: 关于flink的state

Posted by 曲洋 <qu...@126.com>.
懂了,那我就大概知道怎么做了,感谢

在 2022-08-30 14:18:25,"yue ma" <ma...@gmail.com> 写道:
>hi
>1) flink 内部的 state 算子之间是不可以共享的,所以你可能需要借助外部的存储(比如 redis)来做类似的事情
>2) 你可以看看 operatorState 的使用方式
>https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/state/#operator-state
>
>
>曲洋 <qu...@126.com> 于2022年8月30日周二 12:32写道:
>
>> 各位好,
>>    我想请教两个问题:
>> 1) flink的state是否可以在不同的算子共享,比如,第一个map我有一个state,到了第二个map我继续拿到这个state?
>> 2) flink的state有没有不需要keyby的,因为想统计一个总量,还没有合适的key可以选择?
>>
>>

Re: 关于flink的state

Posted by yue ma <ma...@gmail.com>.
hi
1) flink 内部的 state 算子之间是不可以共享的,所以你可能需要借助外部的存储(比如 redis)来做类似的事情
2) 你可以看看 operatorState 的使用方式
https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/state/#operator-state


曲洋 <qu...@126.com> 于2022年8月30日周二 12:32写道:

> 各位好,
>    我想请教两个问题:
> 1) flink的state是否可以在不同的算子共享,比如,第一个map我有一个state,到了第二个map我继续拿到这个state?
> 2) flink的state有没有不需要keyby的,因为想统计一个总量,还没有合适的key可以选择?
>
>