Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Apache spark 在ApacheSpark中,RDD缓存逐出的LRU策略是如何工作的?_Apache Spark_Spark Streaming_Rdd - Fatal编程技术网

Apache spark 在ApacheSpark中,RDD缓存逐出的LRU策略是如何工作的?

Apache spark 在ApacheSpark中,RDD缓存逐出的LRU策略是如何工作的?,apache-spark,spark-streaming,rdd,Apache Spark,Spark Streaming,Rdd,(1) Spark如何决定为RDD收回哪些分区 (2) LRU和RDD StorageLevel之间有什么关系 (3) 如果数据源大小非常大(大于所有执行器内存的总和),spark如何加载数据并创建RDD?它与LRU有关吗 我创建这个问题的目的是获取有关RDD LRU逐出的一些详细信息,即StorageLevel。1。默认的RDD逐出策略是LRU。当内存空间不足以进行RDD缓存时,如果以后再次使用这些分区,将逐出多个分区,它们将被血统信息复制并再次缓存在内存中。 不适合内存的缓存数据集要么溢出到

(1) Spark如何决定为RDD收回哪些分区

(2) LRU和RDD StorageLevel之间有什么关系

(3) 如果数据源大小非常大(大于所有执行器内存的总和),spark如何加载数据并创建RDD?它与LRU有关吗


我创建这个问题的目的是获取有关RDD LRU逐出的一些详细信息,即StorageLevel。

1。默认的RDD逐出策略是LRU。当内存空间不足以进行RDD缓存时,如果以后再次使用这些分区,将逐出多个分区,它们将被血统信息复制并再次缓存在内存中。 不适合内存的缓存数据集要么溢出到磁盘,要么根据RDD的存储级别在需要时动态重新计算

2.我没有发现LRU和RDD storageLevel之间的关系。但是,如果不适合内存,可以使用不同的storageLevel来缓存数据。另外,在不同的storageLevel中,内存和磁盘可以帮助减少GC,避免昂贵的重新计算

3.如果您在大于所有executor内存或群集大小总和的数据上运行spark,我不认为会有任何问题。许多操作都可以通过流式传输数据,因此,内存使用与输入数据大小无关。在少数情况下,如果作业失败或单个分区变得太大而无法放入内存,通常的方法是将其重新分区到更多分区,因此每个分区都会更小。希望这样它会合适