spark 发送数据到 kafka 报错:Cannot Perform operation after producer has been closed

报错原因总结:

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

spark 发送数据到 kafka 报错:Cannot Perform operation after producer has been closed_第1张图片

 

你可能感兴趣的:(总结,kafka,spark,java)