kafka分区,sparkStreaming的excutor,RDD分区的关系

1、kafka分区,sparkStreaming的excutor,RDD分区的关系:

  首先要明确数据的流向:项目中的数据从kafka---->sparkStreaming-------->RDD

(1) kafka中的 topic 的 patition 分区的设置,kafka 的 partition 分区数 ,sparkStreaming 直连方式从kafka中拉数据的话,sparkStreaming 创建的 RDD 的分区数和 kafka partitions分区数是一致的 ,而RDD的分区数对应着集群中的tack的数量,也就是对应着 excutor 的数量和其核数。因此这个要参照集群中的计算资源来进行设置,应该设置几十个kafka patition为好。

(2)sparkStreaming 的 excutor 数决定着集群并发执行 task 的数量,task用来执行 RDD 的 patition 的数据的,一个task 跑一个RDD 分区数据,因此kafka patition数量设置好了的前提下,尽量让其一批执行完毕。

(3)RDD分区,在直连方式下,创建的RDD partitions数与kafka partitions数一致。

 

采用 KafkaUtils.createDirectStream

具体的介绍可以查看官方介绍:Spark Streaming + Kafka Integration Guide

 

参考博客:https://blog.csdn.net/shudaqi2010/article/details/89505767

你可能感兴趣的:(kafka分区,sparkStreaming的excutor,RDD分区的关系)