我有以下的Spark作业,尝试将所有内容保留在内存中:

val myOutRDD = myInRDD.flatMap { fp =>

val tuple2List: ListBuffer[(String, myClass)] = ListBuffer()

:

tuple2List

}.persist(StorageLevel.MEMORY_ONLY).reduceByKey { (p1, p2) =>

myMergeFunction(p1,p2)

}.persist(StorageLevel.MEMORY_ONLY)

然而,当我查看作业跟踪器时,我仍然有很多Shuffle Write和Shuffle溢写到磁盘...

Total task time across all tasks: 49.1 h

Input Size / Records: 21.6 GB / 102123058

Shuffle write: 532.9 GB / 182440290

Shuffle spill (memory): 370.7 GB

Shuffle spill (disk): 15.4 GB

然后任务失败了,因为 "no space left on device" ... 我想知道这里的 532.9 GB Shuffle write 是写入磁盘还是内存?

同时,为什么还有 15.4 G 的数据溢出到了磁盘上,而我明确要求将它们保留在内存中?

谢谢!

Copyright © 2088 世界杯决赛_世界杯是 - rchzwh.com All Rights Reserved.
友情链接
top