對待像我這種2年開發經驗的同學
一般都會被問到。 在面試中,我們只要簡短的介紹就好了。
首先低調一波,我可能懂的比你少,我就簡單說說
1.在排序中,我們使用的是sortBy,它是基於索引,效率高於order by
2.我們在分區的時候采用靜態分區,靜態分區只是讀取配置文件,而動態分區需要重復的讀取其它分區的標識,大量的制造了不必要的開銷
3.在對待groupBy的數據傾斜的方面,我們設置hive.group.sviWind=ture,這表明它會自動進行負載均衡,去除了數據傾斜的問題
4.hive比較擅長處理大文件,大文件會有效的減少過多job,task的創建,這里我們使用UDF和UDAF來處理數據。UDF是單一處理,解決BUG,UDAF是多行處理,還有UDTF,這里我們不用還是說簡單說一下
是單一輸入,多行輸出。
5.減少job和task的數量,我們使用表的鏈接。
6.小表join大表
7.大表join大表,過濾空key
8.設置並行數
9.關閉推測執行
10.設置索引
在送點彩蛋,如果被問到hive中有哪些常用函數,
嗯.!有窗口函數,分析函數,比如row_number,distct,Rank,over by,lag,DENSE_RANK