sparkkafka 史上最全的kafka知识解析( 二 )


无需wal,进一步减少磁盘IO操作
2.direct方式生的rdd是KafkaRDD,它的分区数与kafka分区数保持一致一样多的rdd分区来消费,更方便我们对并行度进行控制
注意:在shuffle或者repartition操作后生成的rdd,这种对应关系会失效
3.可以手动维护offset,实现exactly once语义
4.数据本地性问题 。在KafkaRDD在compute函数中,使用SimpleConsumer根据指定的topic、分区、offset去读取kafka数据 。
但在010版本后,又存在假如kafka和spark处于同一集群存在数据本地性的问题
5.限制消费者消费的最大速率
spark.streaming.kafka.maxRatePerPartition:从每个kafka分区读取数据的最大速率(每秒记录数) 。这是针对每个分区进行限速,需要事先知道kafka分区数,来评估系统的吞吐量 。