把hql當做mapreduce程式去優化。
注意,以下sql不會轉為mapreduce執行:
1.select僅查詢本表字段。
2.where僅對本表字段做條件過濾。
備註:hive依賴zookeeper和hdfs,因此需要先開啟!
explain顯示執行計畫,explain [extended] query
1.普通查詢,不執行mapreduce任務
1.1.普通查詢
1.2.不帶extended的explain
1.3.帶extended的explain
2.執行count(*),執行mapreduce
2.1 普通查詢
2.2不帶extended的explain
2.3帶extended的explain
1.本地模式
1.檢視預設配置
預設為集群模式。
2.設定本地模式
3.檢視設定成本地模式後對查詢效能的影響
注意:1.與2.1普通查詢比較,速度提公升4倍左右,一般僅適用於本地測試!
2.hive.exec.mode.local.auto.inputbytes.max預設值為128m,表示載入檔案的最大值,若大於該配置仍會以集群模式執行。
2.集群模式
通過設定以下引數開啟平行計算模式:set hive.exec.parallel=true;
注意:1.hive.exec.parallel.thread.number【一次sql計算中執行並行執行的job個數的最大值】
2.需要提前關閉本地模式。
1.預設情況,關閉本地模式:
2.開啟平行計算
注意:效能大概提公升25%,這主要和sql是否可以並行執行有關!
SQL 優化核心思想
概念 英文含義 影響示例 計算臨界 基數cardinality 某個列唯一鍵 distinct keys 的數量 基數的高低影響列的資料分布 性別字段基數為2 5 當查詢結果返回表中5 以內的資料時應該走索引 反之,走全表掃瞄 在表中有male 有 50個,總資料100,那麼檢索 male,50 不...
MapReduce核心思想
mapreduce核心程式設計思想,如圖1 1所示。圖1 1 mapreduce核心程式設計思想 1 分布式的運算程式往往需要分成至少 2個階段。2 第乙個階段的 maptask 併發例項,完全並行執行,互不相干。3 第二個階段的 reducetask 併發例項互不相干,但是他們的資料依賴於上乙個階...
Kafka核心思想
kafka是2010年12月份開源的專案,採用scala語言編寫,使用了多種效率優化機制,整體架構比較新穎 push pull 更適合異構集群。設計目標 1 資料在磁碟上的訪問代價為o 1 2 高吞吐率,在普通的伺服器上每秒也能處理幾十萬條訊息 3 分布式架構,能夠對訊息分割槽 4 支援將資料並行的...