Hive效能優化 核心思想 執行模式 平行計算

2022-05-06 13:09:15 字數 1582 閱讀 7857

把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 支援將資料並行的...