全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  应聘面试  >  大数据面试题

批次累加

发布时间:2022-09-02 15:35:53
发布人:wjy

UpdataStateBykey updataStateBykey是特殊的reduceByKey, 相当于oldValue+reduceByKey(newValue1,newValue2),通过传入一个updateFunc来实现批次间数据累加的操作。

实现它必须设置checkPoint路径,updataStateBykey会自动将每次计算的结果持久化到磁盘,批次间的数据则是缓存在内存中。

缺点:大量占用内存,大量产生小文件 MapwithState mapwithState是spark1.6新增的累加操作,目前还在测试中,它的原理网上查不到,只知道是updataStateBykey的升级版,效率提升10倍。

缺点:资料不全,社区很小 不建议使用状态流累加操作,建议用窗口+第三方存储(redis)来达到同样的效果。

Spark Streaming中的updateStateByKey和mapWithState的区别和使用。

UpdateStateByKey:统计全局的key的状态,但是就算没有数据输入,他也会在每一个批次的时候返回之前的key的状态。

这样的缺点就是,如果数据量太大的话,而且我们需要checkpoint数据,这样会占用较大的存储。

如果要使用updateStateByKey,就需要设置一个checkpoint目录(updateStateByKey自己是无法保存key的状态的),开启checkpoint机制。因为key的state是在内存维护的,如果宕机,则重启之后之前维护的状态就没有了,所以要长期保存它的话需要启用checkpoint,以便恢复数据。 

MapWithState:也是用于全局统计key的状态,但是它如果没有数据输入,便不会返回之前的key的状态,有一点增量的感觉。

这样做的好处是,我们可以只关心那些已经发生变化的key,对于没有数据输入,则不会返回那些没有变化的key的数据。

这样即使数据量很大,checkpoint也不会像updateStateByKey那样,占用太多的存储。

批次累加

相关文章

大数据kafka常见面试题——如何搭建kafka?

2023-08-07

大数据kafka常见面试题——kafka中如何避免重复消费

2023-08-04

大数据面试题之多种方法创建dataframe

2023-08-02

大数据Hadoop面试题——Hadoop干什么用的?

2023-08-01

大数据行业2年工作经验的面试题有哪些?

2023-07-28

大数据kafka面试题——kafka和flume的区别是什么?

2023-07-27
在线咨询 免费试学 教程领取