flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yun Tang <myas...@live.com>
Subject Re: Flink中对于state不是很大,但是需要频繁checkpoint的任务,backendstate是选file还是rockdb?
Date Wed, 03 Jul 2019 03:50:58 GMT
hi

首先,就算选择rocksDB statebackend,也是需要写HDFS的,只是在开启了incremental
checkpoint方式情况下可以减少每次hdfs数据写入。

我觉得这个问题核心是一个trade off。不做checkpoint的时候,RocksDBStateBackend的读写性能不如纯内存的FsStateBackend。而在checkpoint的同步阶段,RocksDB
stateBackend需要全量写本地磁盘,比FsStateBackend的内存操作可能要慢一些,也会影响吞吐。在checkpoint的异步阶段,由于RocksDB
stateBackend支持增量上传,所以对HDFS的压力可能要更小一些;但同时,也可以通过打开对FsStateBackend的压缩[1]
来降低FsStateBackend对HDFS的压力。

如果你对吞吐很敏感的话,在state很小的时候,可以选择FsStateBackend,否则应该选择RocksDBStateBackend,可以避免OOM的风险。

[1] https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/large_state_tuning.html#compression

祝好
唐云

________________________________
From: yeyi9999@sina.com <yeyi9999@sina.com>
Sent: Wednesday, July 3, 2019 11:34
To: user-zh
Subject: Flink中对于state不是很大,但是需要频繁checkpoint的任务,backendstate是选file还是rockdb?

Flink中对于state不是很大,但是需要频繁checkpoint的任务,backendstate是选file还是rockdb呀,看官档说的是rockdb适合state很大的任务,可能吞吐会降低。但是如果选用file的话对hdfs的压力又很大
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message