我正在尝试从kafka主题中传输事件并将其保存到Infinispan。
Infinispan作为独立服务器部署 - 因此未嵌入。
提交了Spark任务后,我向Kafka主题添加了一条消息,供我们使用。当它试图这样做时,有一个例外:
Error running job streaming job 1430222654000 ms.0 org.apache.spark.SparkException: Task not serializable
...
Caused by: java.io.NotSerializableException: org.infinispan.client.hotrod.impl.RemoteCacheImpl
Serialization stack:
- object not serializable (class: org.infinispan.client.hotrod.impl.RemoteCacheImpl, value: org.infinispan.client.hotrod.impl.RemoteCacheImpl@43a5194d)
有关如何解决此问题的任何想法?
答案 0 :(得分:3)
当您声明对主驱动程序中的字段的引用(在任务之外)然后在工作程序(在任务内部)中引用它时,Spark中可能发生上述错误。由于RemoteCacheImpl不是Serializable,因此无法通过网络传送。 尝试在任务本身内获取对RemoteCache的引用,而不是依赖于闭包来执行此操作。