网上搜了很多spark streaming 用createDirectStream方式消费kafka的,信息是有很多,但是照着做都遇到了坑,最大的坑就是KafkaCluster是private的!根本就new不了,折腾了一会终于搞定了,也不复杂
1.
新建一个包org.apache.spark.streaming.kafka,就是在你的project建一个这个目录的包,在这个包下面的类里,就可以new出KafkaCluster了!
2.
new出KafkaCluster,后面的就都是小问题了,但是网上给的例子都太复杂,又或者太简单,我们只需要实现重启接着上次的offset消费,消费完保存offset这么简单的功能就行了。
下面是我根据网上找的精简的代码
class KafkaManager(val kafkaParams: HashMap[String, String]) extends Serializable {
private val kc = new KafkaCluster(kafkaParams)