问题:
1,一台服务器上,同时运行4个MapTask任务,即当前服务器会有4个溢写缓冲区,即一个MapTask会开启一个溢写缓冲区
2,Spill过程不一定会发生,当此MapTask输出的数量很小时,小于(默认100Mb*0.8)
3,Merge过程不一定会发生:a,Spill过程没有发生;b,Spill过程发生了,但只生成了一个Spill文件,没必要合成
4,溢写缓冲区实际上是一个对象blockingBuffer。如果没发生Spill,数据就存在blockBuffer里。当缓存失效的情况发生时,即当前的MapTask任务失效,即当此MapTask任务失效时,底层会重新在其他服务器上重新执行此MapTask
5,不能光凭MapTask接收的数据量来判断生成Spill文件数,因为Spill文件数是由MapTask的输出量决定的
标签:Spill,Hadoop,发生,MapTask,失效,缓冲区,服务器 From: https://blog.51cto.com/u_15130867/5996878