我对Hadoop系统和学习阶段都很陌生。
我注意到在Shuffle和Sort阶段,只要MapOutputBuffer达到80%就会发生Spill(我认为这也可以配置)。
现在为什么需要溢出阶段?
是因为MapOutputBuffer是一个循环缓冲区,如果我们不清空它可能导致数据覆盖和内存泄漏?
答案 0 :(得分:9)
我写了一篇很好的文章,涵盖了这个主题:http://0x0fff.com/hadoop-mapreduce-comprehensive-description/
一般来说:
mapreduce.task.io.sort.mb