微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark流检查点

如何解决Spark流检查点

我有一个运行很好的Spark流媒体应用程序(2.4.4,Kafka 0.8 >>,因此是Spark Direct Streaming)。

我通过以下方式创建上下文:

ssc = StreamingContext(sc,60) opts = 
{"Metadata.broker.list":kafka_hosts,"auto.offset.reset": "largest","group.id": run_type}
kvs = KafkaUtils.createDirectStream(ssc,[topic_listen],opts)
kvs.checkpoint(120) 

lines = kvs.map(lambda行:row [1]) lines.foreachRDD(streaming_app)ssc.checkpoint(checkpoint)

流媒体应用程序可以做到这一点:

  • 处理传入批次
  • 与前一批数据框合并并对其进行汇总

当前,我明确使用检查点(df = df.checkpoint())来优化血统。尽管这是一个相当昂贵的练习,并且想知道是否有更好的方法可以做到这一点。

我尝试禁用此显式检查点,因为我有一个定期检查点(kvs.checkpoint(120)),所以我认为沿袭将保留在该检查点的RDD上。尽管实际上并非如此,但随着时间的流逝,处理量不断增加

我在做某些天生的错误吗?有更好的方法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。