1、Spark Streaming概述
Spark Streaming是SparkCore API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。
Spark Streaming支持从多种数据源获取数据,包括Kafk、Flume、Twitter、ZeroMQ、Kinesis 以及TCP sockets。
本项目将实时处理Kafka的数据。
2、Spark Streaming访问Kafka方法
kafka是做消息的缓存,数据和业务隔离操作的消息队列,而sparkstreaming是一款准实时流式计算框架,所以二者的整合,是大势所趋。Spark Streaming访问Kafka的方法,有主要的两大版本:kafka0.8 API和kafka1.0 API。
Spark2.3+ 推荐使用kafka1.0 API。
Spark Streaming接收数据的方式有两种:1.利用Receiver接收数据,2.直接从kafka读取数据。Direct方式更适合开发中使用。Direct方式将kafka看成存数据的一方,且主动去Kafka取数据。Direct方式通过周期性地查询Kafka,可以获得每个topic+partition的最新的offset,从而定义每个batch的offset的范围。当处理数据的job启动时,就会使用Kafka的Con