美文网首页
spark结构化流--kafka

spark结构化流--kafka

作者: Gilegamesh | 来源:发表于2017-09-05 15:42 被阅读0次

我们的场景是通过spark-streaming读取kafka数据,实时持久化到hdfs上。并按day和hour分区。就像这种格式:

kafka:0.10.2.0

hdfs:2.7.3

spark:2.2.0

核心代码如下:

repartition是由于生成文件数量过多,合理合并分区能减少。如果用coalesce会导致任务不能并行(如果是1, 就那就只有一个node运行)。

checkpoint能保证任务挂掉,在kafka数据没有过期前重启能继续正确的运行。但是超过时间会报错Kafka OffSetOutOfRange而导致失败。如果此时你删掉checkpoint dir,任务能正常执行但是会发现它并不会去读取kafka分区的数据。这是因为还有一个地方记录着你的流式处理元信息。

它记录着你流式批次信息,如果不删除,spark-streaming会认为你一直在提交过期的job,导致数据不被处理。

当然,这只是结构化流一点使用心得。更多的文档信息在https://spark.apache.org/docs/latest/structured-streaming-kafka-integration.html

相关文章

网友评论

      本文标题:spark结构化流--kafka

      本文链接:https://www.haomeiwen.com/subject/usdoqxtx.html