apache-spark - Spark 2.3.1 结构化流状态存储内部工作
问题描述
我一直在阅读有关结构化流的 spark 2.3.1 文档,但找不到有关状态操作如何在状态存储内部工作的详细信息。更具体地说,我想知道的是,(1)国家商店是否已分发?(2)如果是这样,那么每个工人或核心如何?
似乎在以前版本的 Spark 中它是每个工人,但现在不知道。我知道它是由 HDFS 支持的,但没有任何解释内存存储的实际工作原理。
确实是分布式内存存储吗?我对重复数据删除特别感兴趣,如果数据是来自一个大数据集的流,那么这需要进行计划,因为所有“不同”数据集最终将保存在内存中,作为该数据集处理的结束. 因此,需要根据状态存储的工作方式来计划工作人员或主人的规模。
解决方案
结构化流中只有一种状态存储实现,它由内存中的 HashMap 和 HDFS 支持。In-Memory HashMap 用于数据存储,HDFS 用于容错。HashMap在worker上占用executor内存,每个HashMap代表一个聚合分区的版本化key-value数据(经过去重、groupByy等聚合算子生成)
但这并不能解释 HDFSBackedStateStore 是如何实际工作的。我在文档中没有看到
您是正确的,没有可用的此类文档。我必须理解代码 (2.3.1),写了一篇关于 State Store 如何在 Structured Streaming 内部工作的文章。您可能想看看:https ://www.linkedin.com/pulse/state-management-spark-structured-streaming-chandan-prakash/
推荐阅读
- c++ - 如何嵌套这些类和 FlexBox 函数?
- scala - 在哪里可以找到与 spark 结构化流相关的所有属性?
- vue.js - 未捕获的类型错误:无法读取未定义的属性“拼接”
- android - AndroidX 重构:旧的支持库仍在其他第三方库中使用
- javascript - 你把使用函数之外的东西的函数和自包含的函数称为什么?
- css - CSS animation re-played after :hover animation
- spring - Spring/Mockito Junit 测试空指针异常
- ios - IOS/Objective-C/Storyboard:防止 ViewController 模态启动
- jpeg - JPG DHT 中的值顺序
- http - 为 Pintrest 添加 HTTP 和 HTTPS 社交共享计数