Java 如何使用Spark将对象永久保存在内存中?

Java 如何使用Spark将对象永久保存在内存中?,java,caching,memory,apache-spark,persistent-storage,Java,Caching,Memory,Apache Spark,Persistent Storage,我使用Spark(java)创建复杂对象的RDD。是否有可能将此对象永久保存在内存中,以便将来再次使用此对象 (因为在应用程序或作业清理内存后使用Spark)Spark不打算用作永久存储,您可以使用HDFS、ElasticSearch或其他与Spark兼容的群集存储 Spark从群集存储读取数据,在RAM中执行一些工作(以及可选的临时结果缓存),然后通常将结果写回群集存储,因为本地硬盘可能有太多的结果 示例:readfromHDFS->Spark。。。RDD…->将结果存储在HDFS中 您必须区

我使用Spark(java)创建复杂对象的RDD。是否有可能将此对象永久保存在内存中,以便将来再次使用此对象


(因为在应用程序或作业清理内存后使用Spark)

Spark不打算用作永久存储,您可以使用HDFS、ElasticSearch或其他与Spark兼容的群集存储

Spark从群集存储读取数据,在RAM中执行一些工作(以及可选的临时结果缓存),然后通常将结果写回群集存储,因为本地硬盘可能有太多的结果

示例:
readfromHDFS->Spark。。。RDD…->将结果存储在HDFS中

您必须区分慢速存储(如硬盘驱动器(磁盘、SSD))和快速易失性内存(如RAM)。Spark的优势在于大量使用随机存取存储器(RAM)


您可以使用,作为临时存储,请参阅:

我理解,但数据库不适合存储对象。。。因此,最好的解决方案是使用hdfs将数据存储在磁盘中,并在内存中使用其他数据库,如Tachyon或Redis,以提高spark读取数据的速度,而不保留对象格式?hdfs与spark配合使用效果很好,通常使用hdfs->spark->hdfs,问题是你必须使用与Spark兼容的东西,它应该能够获取大量数据,但可能你的Spark输出没有输入大,所以这并不总是一个要求。