看起来Spark中的信息依赖于SparkContext。
如果它停止(应用程序结束,并调用sc.stop()
),则有关此应用程序的所有信息都将消失。
我的问题是,如何永久保存一些信息(从Spark群集开始直到群集停止。)?
例如,我想计算每个应用程序的jar文件的MD5。我试图在spark源代码中添加一个新类来维护这些信息。但每次提交新应用程序时,都会初始化此类,因此无法保留信息。
我还尝试在对象HashMap
中添加org.apache.spark.depoly.master.Master
(我认为这在所有群集的生命周期中都存在),但即使这样,它也会在每次启动时初始化新申请已提交。
那么,如何在Spark集群中维护全局信息?创建一个新类(如何和在哪里)?或者添加Map
成员(在哪个类或对象中)?
答案 0 :(得分:0)
使RDD在应用程序实例之间持久的方法是使用例如将其保存到文件系统中。 saveAsObjectFile()