MapReduce Shuffle中的溢写阶段疑问

MapReduce Shuffle中溢写到本地磁盘的操作,它会设置一个阈值,默认是80%,想问下是不是最终不管有没有达到这个设定的阈值它都会触发溢写操作?比如运行一个wordcount,测试的文件数据就几行单词,这都没达到100MB内存中的80%,最终程序仍然是运行完成的,在这边有些疑惑

2个回答

MapReduce 的Shuffle阶段的溢写阶段,分两类:1、环形缓冲区的数据到达80%时,就会溢写到本地磁盘,当再次达到80%时,就会再次溢写到磁盘,
直到最后一次,不管环形缓冲区还有多少数据,都会溢写到磁盘。然后会对这多次溢写到磁盘的多个小文件进行合并,减少Reduce阶段的网络传输。
2.就是没有达到80%map阶段就结束了,这时直接把环形缓冲区的数据写到磁盘上,供下一步合并使用。

一个分区溢写完不足0.8也会溢写到本地磁盘吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问