问题描述
我有一个运行很好的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 (将#修改为@)