900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Spark Streaming:RDD Batch Dstream Partitiion到底是什么

Spark Streaming:RDD Batch Dstream Partitiion到底是什么

时间:2022-08-24 15:43:56

相关推荐

Spark Streaming:RDD Batch  Dstream  Partitiion到底是什么

/docs/2.2.0/streaming-programming-guide.html

其实spark doc写的挺好,我这就把他概括一下,写一些让我迷惑的问题点:

RDD:RDD就算是spark里最基本的处理单位,算是spark定义的一种数据结构(是分布式的)-------她是Immutable的,一旦生成了,就不能改

其实想想也能明白为啥RDD不能修改:处理器之间共享方便:也安全一些,不至于各个core的一个RDD不同步,等等等等

经典的图来了

input data 就是输入了, 不停的发啊发啊发啊,,,,,,

第一步: 切成batch

然后Streaming engine就会用一个batch来收集数据,凑够一个batch了就发走了(batch的大小是时间大小), 问题又来了

那batch里是啥?

block

batch里也不会直接是数据,batch会有block(熟悉把,就是那个64m的block),block内会接受数据流,当一个block存满了,就去存下一个block,直到batch时间到了。

block的大小(怕我忘了: conf:spark.streaming.blockInterval )

RDD

然后这个batch(里面有一些block)就会发送到Spark Engine生成RDD, 而里面的block就变成的RDD的partition。

所以:

一个batch里只有一个RDD

Dstream就简单了,就把他 想象成一堆连续的RDD就行, 没啥特别的

RDD = ( 一堆partitions 组成)

Batch = (一堆block组成)

(一堆block) ------->经过spark engine------->(一堆partitions,生成RDD)

所以要是说Batch和RDD是一个东西好像也不太对,可能就是进化关系把。。。

所以Spark Streaming里最基本的划分是从batch来划分流生成RDD,所以如果你打算生成window, window必须要是batch interval的整数倍(数据是这么切的啊。。。)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。