streaming kafka direct 详解

Posted sunrye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了streaming kafka direct 详解相关的知识,希望对你有一定的参考价值。

http://blog.cloudera.com/blog/2015/03/exactly-once-spark-streaming-from-apache-kafka/
streaming通过direct接收数据的入口是createDirectStream,调用该方法的时候会先创建
val kc = new KafkaCluster(kafkaParams)
这个类会获取kafka的partition信息,并创建DirectKafkaInputStream类,每个类都对应一个topic,通过foreachRDD可以获取每个partition的offset等信息。到了batch time后,这个类的compute方法就会被调用(这块可以参考spark streaming文件夹下的文章),接着就是:
1. 获取kafka partition的untilOffset,这样就确定了获取数据的区间
2. 构建一个kafkaRDD实例。
3. 将offset信息报给InputInfoTracker
4. 返回该RDD
kafkaRDD和一般的RDD一样,整个过程都是lazy的,数据都是放在kafka中,只有真正action的时候才会从kafka拉取数据。


以上是关于streaming kafka direct 详解的主要内容,如果未能解决你的问题,请参考以下文章

Spark 学习笔记之 Streaming和Kafka Direct

Spark Streaming 基于 Direct API 优化与 Kafka 集成

Spark Streaming 基于 Direct API 优化与 Kafka 集成

Spark Direct Stream 不会为每个 kafka 分区创建并行流

如何将 Spark 结构化流与 Kafka Direct Stream 结合使用?

Spark Streaming整合Kafka