12-order by和group by 原理和优化 sort by 倒叙
生活随笔
收集整理的這篇文章主要介紹了
12-order by和group by 原理和优化 sort by 倒叙
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
========================原理和優化================================== groupBy分組?會造成一個數據傾斜 1.解決方案:將輸入在map端進行部分的打亂重分 set hive.groupby.skewindata=true; 2.在map到reduce端的時候設置combiner進行合并 set hive.map.aggr=true; 3.在combiner進行合并的時候要知道數據量的大小,如果不是特別大就不需要進行合并 set hive.groupby.mapaggr.checkinterval=100000;如果數據小于10w條那么沒必要合并 4.看在combiner合并期間做的合并率 set hive.map.aggr.hash.min.reduction=0.5order by是排序?全局排序,reduce就應該是一個 其實orderby就是一個reduce在進行排序處理,那么壓力特別大,并且容易產生宕機 那么我們在使用這個order by的時候就不能進行全局排序,加上limit set hive.mapred.mode = strict; 在嚴格模式下如果向使用order by進行排序,那么必須使用limit進行指定條數sort by排序,不是全局排序,單個reduce的排序 問題:將每個部門的數據都按照工資進行倒序?set mapreduce.job.reduces=3; select * from t_emp distribute by deptno sort by salary desc;sort by 每個mr自己得文件單獨排序
distribute by 分發將map端得數據按照一定得規則分發給不同得reduce端
set mapreduce.job.reduces=3;
與order by不同,order by是全局排序 其實sortby也可以全局排序 reduce是一個得時候就可以全局排序
cluster by:分發+排序 == sort by+distribute by,但是cluster by 這個分發加上排序是只能指定一個字段
?
?
轉載于:https://www.cnblogs.com/JBLi/p/10834570.html
總結
以上是生活随笔為你收集整理的12-order by和group by 原理和优化 sort by 倒叙的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于SpringBoot 2.0正式版的
- 下一篇: 【js】数组置空的其他方式及使用场景