PySpark和Kafka“设置不见了。可能丢失了一些数据。”

梅林·塞布雷希茨

我正在本地模式下使用Spark集群运行PySpark,并且试图将流式DataFrame写入Kafka主题。

运行查询时,收到以下消息:

java.lang.IllegalStateException: Set(topicname-0) are gone. Some data may have been missed.. 
Some data may have been lost because they are not available in Kafka any more; either the
 data was aged out by Kafka or the topic may have been deleted before all the data in the
 topic was processed. If you don't want your streaming query to fail on such cases, set the
 source option "failOnDataLoss" to "false".

这是我的代码:

query = (
    output_stream
    .writeStream.format("kafka")
    .option("kafka.bootstrap.servers", "localhost:9092")
    .option("topic", "ratings-cleaned")
    .option("checkpointLocation", "checkpoints-folder")
    .start()
)
sleep(2)
print(query.status)
麦克风

自上次查询以来,从源主题中删除了一些消息/偏移后,通常会显示此错误消息。删除是由于清理策略(例如保留时间)而发生的。

想象一下,您的主题中包含偏移量0、1、2的消息已全部由应用程序处理。检查点文件存储最后一个偏移量2,以记住下次启动偏移量3时继续。

一段时间后,向该主题生成了偏移量为3、4、5的消息,但是将偏移量为0、1、2、3的消息从主题中删除到保留。

新增功能,在重新启动Spark结构化流作业时,它尝试根据其检查点文件获取3,但意识到只有偏移量为4的消息才可用。在这种情况下,它将抛出此异常。

您可以通过解决此问题

  • .option("failOnDataLoss", "false")readStream操作中进行设置,或
  • 删除现有的检查点文件

根据《结构化流+ Kafka集成指南》,该选项failOnDataLoss描述为:

“是否有可能在数据丢失(例如,主题被删除或偏移量超出范围)时使查询失败。这可能是一个错误的警报。您可以在其无法正常工作时将其禁用。批处理如果由于丢失数据而无法从提供的偏移量中读取任何数据,查询将始终失败。”

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows 7中一些程序图标不见了

来自分类Dev

分区不见了

来自分类Dev

分区不见了

来自分类Dev

亮度设置不见了,如何恢复?

来自分类Dev

内联字体css文件和字体不见了

来自分类Dev

通知和行动中心不见了

来自分类Dev

剃刀分号不见了?

来自分类Dev

OneNote VSTO不见了?

来自分类Dev

雷鸟帐户不见了

来自分类Dev

Google Colab文件不见了

来自分类Dev

雷鸟帐户不见了

来自分类Dev

Windows启动选项不见了?

来自分类Dev

GNOME不见了。怎么修?

来自分类Dev

我菜单不见了

来自分类Dev

UEFI引导选项不见了

来自分类Dev

Word 2007宏不见了

来自分类Dev

亮度调整不见了

来自分类Dev

VirtualBox菜单不见了

来自分类Dev

WIFI界面不见了

来自分类Dev

WordPress国家名单不见了

来自分类Dev

蓝牙设备突然不见了

来自分类Dev

用MATE替换Unity设置后,它的设置混乱了,启动器不见了

来自分类Dev

EMR pyspark 笔记本 Spark 进度小部件不见了

来自分类Dev

Unity的延迟渲染设置似乎不见了,还是我完全错了?

来自分类Dev

为什么我把半透明设置为背景后ViewController中的Label不见了?

来自分类Dev

卸载应用后,Google Games Services数据不见了

来自分类Dev

WebApi方法未获取发布的数据。什么不见了?

来自分类Dev

卸载应用后,Google Games Services数据不见了

来自分类Dev

重新加载后Angular Cordova推送数据不见了