1:三阶段压缩
压缩比 10 v 1
三个阶段
第一阶段 map读取元数据,可以分片的压缩(bzip2)。
第二阶段 shuffle后的数据,的数据应该选择速度比较快的压缩(snappy、lzo)
第三阶段 reduce放磁盘就可以使用较高的压缩比节省磁盘空间(bzip2)
2:小文件合并Combiner
在不影响下次计算或者用的情况下用,累加或者计算结果,就是为了避免map任务和reduce任务之间的数据传输而设置的,减少小文件。
3:自定义partition
目的减少文件溢出个数,合理控制溢出文件个数,减少redues个数。
4:调整环形缓冲区的大小和溢出比
目的减少小文件,减少redues个数。
5: redues拉取
调大内存默认1G,默认拉取5个,调大拉取个数。
6:调整Map 与Redues job的内存大小
默认1G ,调整到 4-5G 比较合理