1、SparkStreaming直连方式和Receiver方式的区别:
https://mp.weixin.qq.com/s/-K6I2QNebJ0N414jMLfOSg
2、如何手动管理kafka偏移量:
https://www.jianshu.com/p/bf422de60e8b
3、实时计算编程:
http://lxw1234.com/archives/2018/02/901.htm
4、kafka分区,sparkStreaming的excutor,RDD分区的关系:
首先要明确数据的流向:项目中的数据从kafka---->sparkStreaming-------->RDD
(1) kafka中的 topic 的 patition 分区的设置,kafka 的 partition 分区数 ,sparkStreaming 直连方式从kafka中拉数据的话,sparkStreaming 创建的 RDD 的分区数和 kafka partitions分区数是一致的 ,而RDD的分区数对应着集群中的tack的数量,也就是对应着 excutor 的数量和其核数。
(2)sparkStreaming 的 excutor 数决定着集群并发执行 task 的数量,task用来执行 RDD 的 patition 的数据的,一个task 跑一个RDD 分区数据,因此kafka patition数量设置好了的前提下,尽量让其一批执行完毕。
(3)RDD分区,在直连方式下,创建的RDD partitions数与kafka partitions数一致。
采用 KafkaUtils.createDirectStream
具体的介绍可以查看官方介绍:Spark Streaming + Kafka Integration Guide
http://lxw1234.com/archives/2018/02/901.htm
参考博客:https://blog.csdn.net/shudaqi2010/article/details/89505767