Sparkstreaming+kafka direct模式:
将kafka看成存储数据的一方,sparkstreaming处理数据主动去拿数据,不需要一个task一直被占用接受数据
sparkStreaming+kafka的direct模式的并行度:生成的dstream中的rdd的并行度与读取的kafka的topic的partition个数一致。Direct模式相对于receiver模式来说简化了并行度。
Direct模式没有使用zookeeper来维护消费者偏移量,使用的是spark来管理消费者的offset。默认将消费者offset存储在内存中,如果设置了checkpoint,那么在checkpoint中也有一份消费者offset。
Receiver模式和direct模式的区别:
简化并行度
Receiver是zookeeper来管理
Direct是自己管理,没有任何zookeeper的信息
Receiver是高级,direct是低级的。
直接读取kafaka中的数据,将kafka看成存储消息的一方
使用spark自己来管理消费者offset,默认存在内存中,如果设置checkpoint,那么在checkpoint中也有一份备份offset
如何从checkpoint中恢复消费者offset
恢复过程中,把旧的逻辑也恢复过来了,无法加载新的逻辑
采用了读取kafka低级API来实现消费,可以自己来维护offset。