Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory apachespark-内存管理_Memory_Apache Spark_Ram - Fatal编程技术网

Memory apachespark-内存管理

Memory apachespark-内存管理,memory,apache-spark,ram,Memory,Apache Spark,Ram,因此,假设我有一个具有100GB内存的集群供spark使用。我得到了一个2000 GB的数据集,并希望为此数据集运行一个迭代应用程序。200次迭代 我的问题是,在使用.cache()时,spark会在内存中保留前100 GB,并在自动读取下一个100 GB之前执行200次迭代吗 在内存限制范围内工作时,spark的优势非常明显,但在处理较大的数据集时,我不完全确定spark和Thread如何管理数据。这不是您将看到的行为。Spark的缓存是使用LRU逐出完成的,因此,如果缓存的数据集太大而无法存

因此,假设我有一个具有100GB内存的集群供spark使用。我得到了一个2000 GB的数据集,并希望为此数据集运行一个迭代应用程序。200次迭代

我的问题是,在使用.cache()时,spark会在内存中保留前100 GB,并在自动读取下一个100 GB之前执行200次迭代吗


在内存限制范围内工作时,spark的优势非常明显,但在处理较大的数据集时,我不完全确定spark和Thread如何管理数据。

这不是您将看到的行为。Spark的缓存是使用LRU逐出完成的,因此,如果缓存的数据集太大而无法存储,则只有最近使用的部分才会保留在内存中。不过,spark也有一种内存和磁盘持久化模式(在中有详细介绍),听起来很适合您的情况。

谢谢。所以当使用.persist()和MEMORY_和_DISK参数时,spark必须在每次迭代后从磁盘读取数据?这样做的好处是RDD不会在每次迭代后使用沿袭重新计算,对吗?这就是想法。通常,从本地磁盘读取数据要比重新计算数据快。