Spark 2.3.1 结构化流式处理状态存储内部工作



我一直在浏览有关结构化流式处理的 Spark 2.3.1 文档,但找不到有状态操作如何在内部与状态存储一起工作的详细信息。更具体地说,我想知道的是,(1(国有商店是分布式的吗?(2(如果是这样,那么如何,每个工人或核心?

似乎在以前版本的 Spark 中它是按工人的,但现在不知道。我知道它由 HDFS 支持,但没有任何解释内存存储的实际工作原理。

确实是分布式内存存储吗?我对重复数据消除特别感兴趣,如果数据是从大型数据集流式传输的,那么这需要进行规划,因为所有"不同"数据集最终将作为该数据集处理的结束保存在内存中。因此,需要根据状态存储的工作方式来规划工作线程或主节点的大小。

结构化流中只有一个状态存储的实现,它由内存中哈希映射和HDFS支持。 内存中哈希图用于数据存储,而HDFS用于故障角色。 HashMap 占用工作线程上的执行器内存,每个 HashMap 表示聚合分区的版本化键值数据(在重复数据删除、groupByy 等聚合器运算符之后生成(

但这并不能解释HDFSBackedStateStore的实际工作原理。 我在文档中没有看到它

您是对的,没有可用的此类文档。 我必须理解代码(2.3.1(,写了一篇关于State Store如何在结构化流中内部工作的文章。您可能想看看 : https://www.linkedin.com/pulse/state-management-spark-structured-streaming-chandan-prakash/

最新更新