Spark 的流式能力加上 Kafka 的高吞吐消息系统,这种组合在实时大数据里真的是老搭档了。spark-streaming-kafka-0-8-assembly_2.11-2.4.5这个 JAR 包就是专门干这事的,专为Spark 2.4.xScala 2.11量身定做,想要让 Spark Streaming 读 Kafka 0.8 的数据,离不开它。

对你来说,最直接的好处就是能快速搭起流链路。DirectStreamReceiverStream两种方式可选,前者精确一次,后者适合低延迟场景。要读取 Kafka 数据,就用KafkaUtils.createDirectStream,加点 transform,窗口函数下,再写回 Kafka 或别的系统,整个流程还挺顺的。

使用的时候,记得把spark-streaming-kafka-0-8-assembly_2.11-2.4.5.jar加到 classpath 里。可以在spark-submit里加--jars参数,或者在SparkSession里配置spark.jars,本地调试也挺方便。

要注意的是,Kafka 0.8 比较老了,现在生产上大多已经用上 0.10 甚至更高版本了。如果你项目还在老版本上,那这个 JAR 包就比较合适;否则可以考虑升级用spark-sql-kafka-0-10那套。

另外,如果你是用PySpark搞的,也没关系,虽然这个包是 JVM 世界的,但加到 Spark 环境里,Python 端也能直接用 Kafka 的数据。

嗯,如果你正在搞老版本的 Kafka 对接,或者维护一个历史项目,这个库可以说是刚刚好。资源下载可以从以下这些链接入手:比如PySpark 连接器,或者Pro Spark Streaming 实时指南,都挺实用的。