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 (将#修改为@)