两种常用的Spark Streaming和Kafka整合方法:
1. CreateStream:
传统方法,使用了接收器和Kafka的高阶API
接收器接收到的数据被存在Spark executors中,随后streaming的任务会处理数据。
缺点:会丢失数据,除非设置streaming的write ahead logs
2. CreateDirectStream:
新方法,不使用接收器
优势:优化并行结构,kafka分区和RDD分区一一对应;不需要为了数据恢复而写write ahead logs,数据直接从kafka恢复;不会出现offset数据的不一致,offset全部由streaming维护
CreateStream
1.添加maven依赖:
groupId = org.apache.spark
artifactId = spark-streaming-kafka_2.10
version = 1.6.0
2.代码(