推測執行
在分布式集群環境下,因為程式bug(包括hadoop本身的bug),負載不均衡或者資源分布不均等原因,會造成同乙個作業的多個任務之間執行速度不一致,有些任務的執行速度可能明顯慢於其他任務(比如乙個作業的某個任務進度只有50%,而其他所有任務已經執行完畢),則這些任務會拖慢作業的整體執行進度。為了避免這種情況發生,hadoop採用了推測執行(speculative execution)機制,它根據一定的法則推測出「拖後腿」的任務,並為這樣的任務啟動乙個備份任務,讓該任務與原始任務同時處理同乙份資料,並最終選用最先成功執行完成任務的計算結果作為最終結果。
設定開啟推測執行引數:hadoop的mapred-site.xml檔案中進行配置
mapreduce.map.speculative
true
mapreduce.reduce.speculative
true
不過hive本身也提供了配置項來控制reduce-side的推測執行:
hive.mapred.reduce.tasks.speculative.execution
true
關於調優這些推測執行變數,還很難給乙個具體的建議。如果使用者對於執行時的偏差非常敏感的話,那麼可以將這些功能關閉掉。如果使用者因為輸入資料量很大而需要首席執行官時間的map或者reduce task的話,那麼啟動推測執行造成的浪費是非常巨大大。 Hive企業級調優
對sql語句的優化 統計個數使用count 1 不要使用count 查詢字段不要select 使用select 字段 使用特殊的儲存格式 列式儲存 orc,parquet 建表的時候 stored as orc 小表join大表 mr程式中的map端 jojn 小表是個小檔案可以分布式的快取到集群的...
Spark企業級應用開發和調優
spark專案程式設計優化歷程記錄,主要介紹了spark企業級別的開發過程中面臨的問題和調優方法。包含合理分配分片,避免計算中間結果 大資料量 的collect,合理使用map,優化廣播變數等操作,降低網路和磁碟io,提高計算效率。首先如下圖 2.1 spark應用開發在集群 偽分布式 中的記錄,每...
Spark企業級應用開發和調優
spark專案程式設計優化歷程記錄,主要介紹了spark企業級別的開發過程中面臨的問題和調優方法。包含合理分配分片,避免計算中間結果 大資料量 的collect,合理使用map,優化廣播變數等操作,降低網路和磁碟io,提高計算效率。首先如下圖 2.1 spark應用開發在集群 偽分布式 中的記錄,每...