Hadoop的溢写

时间:2023-01-09 11:04:20

Hadoop的溢写

问题:

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的输出量决定的