spark.streaming.blockInterval与RDD分区有什么关系?

时间:2017-12-29 07:13:00

标签: apache-spark spark-streaming

Spark Streaming中spark.streaming.blockInterval中的块和RDD分区之间有什么区别?

引用Spark Streaming 2.2.0文档:

  

对于大多数接收器,接收的数据在存储在Spark内存中之前合并为数据块。每个批次中的块数决定了在类似地图的转换中用于处理接收数据的任务数。

根据块间隔确定块数。我们还可以定义rdd分区的数量。所以我认为,它们不可能相同。他们之间有什么不同?

1 个答案:

答案 0 :(得分:0)

spark.streaming.blockInterval:Spark Streaming接收器接收的数据在存储到Spark之前被分块为数据块的时间间隔。这是在使用接收器基础方法时 - Receiver-based Approach

并且KafkaUtils.createDirectStream()不使用接收器,因此使用DStream API,Spark Streaming将创建与要使用的Kafka分区一样多的RDD分区。 - Direct Approach (No Receivers)

这意味着在DStream API中没有使用块间隔配置。