作者回复: 1)task level的统计值哈~ 2)3G和18.8G,是两个完全不同的概念哈,3G是开发者的设定值,每个Executors内存大小为3G;但是18.8G,是集群范围内,单位时间内存消耗的累计值,这里面有个时间的概念。简言之,3G的设置,是静态的,而18.8G的内存消耗,是一个动态的概念,英文里面把这个叫做memory footprint,它代表了单位时间任务对于内存的消耗与需求
作者回复: 这种情况下,spill memory好算,大概其就是80G左右,说白了就是内存数据结构放不下因而溢出的数据,在内存中的存储大小。spill disk不好算,这要看实际80G数据落盘到磁盘到底有多大~ 另外,老弟的假设反了哈,通常来说,磁盘上的(带压缩)数据,都比内存中(Java object)的小~
作者回复: 就是如果把数据集在内存中存储、展开,所占用的内存总大小
作者回复: 老弟,不妨回想一下take的工作原理,为什么有两个show(甚至是多个show),自然就清楚啦~