一、首先要明白底层map、shuffle、reduce的顺序之中服务器hdfs数据文件在内存与存储之中是怎么演变的,因为hive的性能瓶颈基本在内存,具体参考以下他人优秀文章:
1.Hive SQL底层执行过程详细剖析
2.Hive JOIN性能调优
二是要明白hive对应的sql它底层的map reduce的过程中sql字段的执行顺序,来理解map的key、value会填充什么值,才能深刻理解怎么一步一步的较少数据,避免内存占用太多。如mysql的执行顺序(from ->on ->join ->where ->group by ->having ->select ->distinct ->order by ->limit),hive则不是,具体参考以下他人优秀文章:
1.hive中join下on和where 执行顺序