需求
对于进入到Kafka中的实时数据可以通过Flume从Kafka中消费并输出保存到hdfs上。但对于Kafka中历史数据,Flume不起作用了,可以通过spark streaming从头消费Kafka主题中json数据,并将数据以json形式保存到hdfs上。
查看json数据
#执行pyspark进入交互界面,执行以下代码查看从kafka中读到的json数据,
#topic:dl_face, kafka集群:kafka1:9092,kafka2:9092,kafka3:9092,
#startingOffsets:earliest 代表从头开始消费
lines=spark.readStream.format("kafka").option("kafka.bootstrap.servers","kafka1:9092,kafka2:9092,kafka3:9092").option("subscribe","dl_face").option("startingOffsets","earliest").load()
#输出到终端
lines.writeStream.outputMode("update").format("console").start()
#结果(前20行)
+----+--------------------+-------+---------+------+--------------------+-------------+
| key| value| topic|partition|offset| timestamp|timestampType|
+----+--------------------+-------+---------+------+--------------------+-------------+
|null|[7B 22 73 75 73 7...|dl_face| 4| 3|2020-05-06 19:17:...| 0|
|null|[7B 22 73 75 73 7...|dl_face| 4| 4|2020-05-06 19:17:...| 0|
|null|[7B 22 73 75 73 7...|dl_face| 4| 5|2020-05-06 19:18:...| 0|
|null|[7B 22 73 75 73 7...|dl_face| 4| 6|2020-05-06 19:18:...| 0|
|null|[7B 22 73 75 73 7...