對sql語句的優化 統計個數使用count(1),不要使用count(*)查詢字段不要select * ,使用select 字段
使用特殊的儲存格式 列式儲存:orc,parquet 建表的時候 stored as orc
小表join大表(mr程式中的map端 jojn) 小表是個小檔案可以分布式的快取到集群的其他的maptask中,就不需要reduce端join
開啟map端的區域性聚合 預設是開啟的
避免count(distinct)
進行join的時候避免笛卡兒積
適當的調整maptask的個數和reducetask的個數
測試資料在本地執行 沒有問題了再放到yarn上執行 使用指令碼來排程我們寫的sql語句—hive -f
資料傾斜產生的根本原因就是shuffle ,上游的資料到下游 ,可能會出現下游資料分發不均勻的這種情況解決方法
1:重寫分割槽邏輯2:重新設計key—>打散key
3:增加reduce 的個數
4:增加reduce的記憶體
5:先在map端進行區域性聚合 再到reduce端進行全域性聚合 會減少reduce端的壓力
6:將reduce的join變成map端的join
7:避免reduce能不要reduce就不要reduce
Hive企業級調優(五)
推測執行 在分布式集群環境下,因為程式bug 包括hadoop本身的bug 負載不均衡或者資源分布不均等原因,會造成同乙個作業的多個任務之間執行速度不一致,有些任務的執行速度可能明顯慢於其他任務 比如乙個作業的某個任務進度只有50 而其他所有任務已經執行完畢 則這些任務會拖慢作業的整體執行進度。為了...
Spark企業級應用開發和調優
spark專案程式設計優化歷程記錄,主要介紹了spark企業級別的開發過程中面臨的問題和調優方法。包含合理分配分片,避免計算中間結果 大資料量 的collect,合理使用map,優化廣播變數等操作,降低網路和磁碟io,提高計算效率。首先如下圖 2.1 spark應用開發在集群 偽分布式 中的記錄,每...
Spark企業級應用開發和調優
spark專案程式設計優化歷程記錄,主要介紹了spark企業級別的開發過程中面臨的問題和調優方法。包含合理分配分片,避免計算中間結果 大資料量 的collect,合理使用map,優化廣播變數等操作,降低網路和磁碟io,提高計算效率。首先如下圖 2.1 spark應用開發在集群 偽分布式 中的記錄,每...