【发布时间】:2020-04-28 12:25:22
【问题描述】:
根据this question 和我读过的文档,Spark Streaming 的 foreachRDD(someFunction) 将仅在驱动程序进程中执行 someFunction 本身,但如果有在 RDD 上完成的操作然后将在 executor 上完成 - RDD 所在的位置。
以上所有内容也适用于我,尽管我注意到如果我打开检查点,那么似乎 spark 正在尝试序列化 foreachRDD(someFunction) 中的所有内容并发送到某个地方 - 这是对我造成问题,因为使用的对象之一是不可序列化的(即 schemaRegistryClient)。我尝试了 Kryo 序列化程序,但也没有运气。
如果我关闭检查点,序列化问题就会消失。
有没有办法让 Spark 不序列化 foreachRDD(someFunc) 中使用的内容,同时继续使用检查点?
非常感谢。
【问题讨论】:
标签: apache-spark spark-streaming rdd avro kryo