关于MapReduce的Shuffle阶段的磁盘空间需求问题
了解了Shuffle的原理之后有一个疑问:
Shuffle阶段将数据存储于本地磁盘,而非HDFS,如果map阶段产生的中间数据过多,或者reduce收取的数据过多,都可能会造成磁盘空间不足。
map的结果可能不会占用太多磁盘空间,毕竟输入最多是一个HDFS的block size(除非手工改参数),而map产生的结果一般也不会比输入还大,除非算法很特殊。
但reduce就难说了,它需要从所有的map那里抓取属于自己的数据,是不是有可能导致磁盘爆满啊?