dear all :
我们checkpoint 信息默认保存在rocksdb上,但是rocksdb 是一个单机系统,性能OK,要做到不丢失还是要备份到hdfs分布式文件系统上。 问题是: 1. 如果仅保存在rocksdb,那么单机物理损坏,数据是会丢失的。 2. 如果仅保存hdfs,那么性能可能跟不上 3.如果先保存到rocksdb,再定时备份到hdfs,那么是多久备份一次?中间出现物理损坏,还是会出现一端时间的丢失。 4. 这块的详细设计,和具体流程、场景有合适的文档推荐吗?怎么再性能和数据完整性上做考虑的 |
Hi
RocksDB 里面存的是 State,Flink 在做 checkpoint 的时候会把 State 备份到 HDFS 上,如果失败的话从 Checkpoint 进行恢复,如果想了解更详细的内容,可以参考文档[1][2] 以及文档里面的链接 [1] https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/stream/state/checkpointing.html [2] https://ci.apache.org/projects/flink/flink-docs-release-1.11/learn-flink/fault_tolerance.html Best, Congxian Michael Ran <[hidden email]> 于2020年9月29日周二 上午11:06写道: > dear all : > 我们checkpoint 信息默认保存在rocksdb上,但是rocksdb > 是一个单机系统,性能OK,要做到不丢失还是要备份到hdfs分布式文件系统上。 > > > 问题是: > 1. 如果仅保存在rocksdb,那么单机物理损坏,数据是会丢失的。 > 2. 如果仅保存hdfs,那么性能可能跟不上 > 3.如果先保存到rocksdb,再定时备份到hdfs,那么是多久备份一次?中间出现物理损坏,还是会出现一端时间的丢失。 > 4. 这块的详细设计,和具体流程、场景有合适的文档推荐吗?怎么再性能和数据完整性上做考虑的 |
In reply to this post by Michael Ran
Hi~ 按你的问题顺序回答如下:
1. Flink中的RocksDB是支持保存到hdfs的,且支持的非常好,将rocksdb的存储路径设置为hdfs路径即可。 2. in-flight的数据是保存在本地磁盘的,仅当checkpoint的时候,才会将本地的状态拷贝到hdfs。而且checkpoint本身不会因为远程拷贝影响计算速度。 3. 多久备份一次,取决于你配置的checkpoint的间隔。每次checkpoint都会备份&远程拷贝。但请注意,默认配置下checkpoint会在作业停止后删除,这时候你需要手动触发savepoint,你当然也可以在作业运行过程中出发保存savepoint,savepoint的好处是不会随作业停止而删除,且可以让新作业基于savepoint启动,从而实现exactly-once或at-least的语义。 4. Flink提供多种状态后端,需要根据你的实际场景选择。但对于大状态和高可用场景,推荐rocksdb。具体的推荐还是多读下文档。 文档: https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/state_backends.html#rocksdb-state-backend-details https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/checkpoints.html https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/savepoints.html https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/large_state_tuning.html 祝好, By Soda On Tue, 29 Sep 2020 at 11:06, Michael Ran <[hidden email]> wrote: > dear all : > 我们checkpoint 信息默认保存在rocksdb上,但是rocksdb > 是一个单机系统,性能OK,要做到不丢失还是要备份到hdfs分布式文件系统上。 > > > 问题是: > 1. 如果仅保存在rocksdb,那么单机物理损坏,数据是会丢失的。 > 2. 如果仅保存hdfs,那么性能可能跟不上 > 3.如果先保存到rocksdb,再定时备份到hdfs,那么是多久备份一次?中间出现物理损坏,还是会出现一端时间的丢失。 > 4. 这块的详细设计,和具体流程、场景有合适的文档推荐吗?怎么再性能和数据完整性上做考虑的 |
好的,非常感谢。
在 2020-09-29 14:23:10,"王冶" <[hidden email]> 写道: >Hi~ 按你的问题顺序回答如下: > 1. Flink中的RocksDB是支持保存到hdfs的,且支持的非常好,将rocksdb的存储路径设置为hdfs路径即可。 > 2. >in-flight的数据是保存在本地磁盘的,仅当checkpoint的时候,才会将本地的状态拷贝到hdfs。而且checkpoint本身不会因为远程拷贝影响计算速度。 > 3. >多久备份一次,取决于你配置的checkpoint的间隔。每次checkpoint都会备份&远程拷贝。但请注意,默认配置下checkpoint会在作业停止后删除,这时候你需要手动触发savepoint,你当然也可以在作业运行过程中出发保存savepoint,savepoint的好处是不会随作业停止而删除,且可以让新作业基于savepoint启动,从而实现exactly-once或at-least的语义。 > 4. Flink提供多种状态后端,需要根据你的实际场景选择。但对于大状态和高可用场景,推荐rocksdb。具体的推荐还是多读下文档。 > >文档: >https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/state_backends.html#rocksdb-state-backend-details >https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/checkpoints.html >https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/savepoints.html >https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/state/large_state_tuning.html > >祝好, >By Soda > > >On Tue, 29 Sep 2020 at 11:06, Michael Ran <[hidden email]> wrote: > >> dear all : >> 我们checkpoint 信息默认保存在rocksdb上,但是rocksdb >> 是一个单机系统,性能OK,要做到不丢失还是要备份到hdfs分布式文件系统上。 >> >> >> 问题是: >> 1. 如果仅保存在rocksdb,那么单机物理损坏,数据是会丢失的。 >> 2. 如果仅保存hdfs,那么性能可能跟不上 >> 3.如果先保存到rocksdb,再定时备份到hdfs,那么是多久备份一次?中间出现物理损坏,还是会出现一端时间的丢失。 >> 4. 这块的详细设计,和具体流程、场景有合适的文档推荐吗?怎么再性能和数据完整性上做考虑的 |
Free forum by Nabble | Edit this page |