一、首先要明白底層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 執行順序