报错原因总结:
spark发送到kafka是有生产者线程池的. 这个支持的过期策略在spark2.4.4之前的策略是: 你task access该producer开始计时. 如果10min内没有新的access则close该producer. 那么问题就是: 小数据量,做完还回去,不同task接力刷洗 池子里producer对象的access时间,那么过期不了.
如果你task拿到后 10min都没发送完kafka数据, 那么spark自动给你把producer过期了.
该问题对应的jira单子
Issue Navigator - ASF JIRA
SPARK-21869
找到修复的commit
文章来源:https://www.toymoban.com/news/detail-742569.html
文章来源地址https://www.toymoban.com/news/detail-742569.html
到了这里,关于spark 发送数据到 kafka 报错:Cannot Perform operation after producer has been closed的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!