1、读取数据的并发度
Receiver的方式:采用的是单核的模式,即使你设置了多个线程数,你的上下文环境中设置的并行度很大,也不会产生影响,还是1。只有通过配置多个receiver才会并行的读取kafka中的数据
Direct的方式:读取数据的并行度和topic的分区数相同,而且生成的DStream的并行度也和topic的分区数相同,一一对应。
2、生成的DSream的并行度
Receiver的方式:程序中Batch的间隔是4000ms,每Batch的数据构成一个RDD,在整个执行的环境中spark.streaming.blockInterval =100。生成的DStream的并发度是4000/100 =40
Direct的方式:生成的DStream的并行度也和topic的分区数相同,一一对应。
3、kafka日志文件
Receiver的方式:默认情况下这种方式读取的数据都是存在内存中的很容易导致OOM,如果要保证零数据丢失,必须