hbase和hive的一些調優心得

2021-08-15 22:02:00 字數 1495 閱讀 2762

原創 2023年11月20日 16:01:13

hive優化:

1、開啟limit,防止過多的資料查詢造成時延

2、開啟嚴格模式,禁止三種模式的查詢(查詢全部分割槽而沒有where限制、使用order by查詢而沒有limit限制,表聯結使用on以限制笛卡兒積的查詢)

3、合理的設定map reduce的個數,不能過多或者過少

4、使用本地模式,對於一些資料量小的查詢,減少開啟job的時間

5、使用map端jion,將資料量小的表,放在join的左邊,直接加入記憶體

6、推測執行,這是對mr的優化,防止出現木桶效應

7、設定並行度,讓一些不相關的stage能夠並行執行,加速任務的完成

8、jvm重用,通過在配置檔案中設定一些引數,來配置某些task的stage重用jvm,減少任務的開啟時間

9、建立索引,加快查詢

10、調整動態分割槽的數量,盡量高,不能太高,1000個左右最好

11、設定中間和reduce結果進行壓縮,減少占用空間

hbase優化:

1、hbase查詢優化

1> 設定scan快取,定義服務端到客戶端的資料條數

2> 顯示指定查詢列,避免太多的資料傳輸造成網路壓力

3 >設定過濾,只查詢需要的資料,比如行鍵

4 >使用htablepool,解決htable執行緒不安全的情況

5 >關閉resultscanner,保證連線不會一直占用

2、hbase寫入優化

1 >關閉wal,避免每次寫入資料都要先寫入日誌檔案

2 >關閉autoflush,避免使用者每次提交資料都直接傳送到了伺服器端,可以在客戶端進行快取

3 >預建立region,使用自帶的分割槽工具或者自定義分割槽演算法都行

4 >延遲日誌flush的時間,預設值為1秒,可以增大該值,將資料在記憶體中少留一會,較少wal日誌到hdfs的次數

5 >使用批量寫,通過put方法,指定多個行鍵,批量寫入

3、hbase配置引數優化

1 >設定regionserver的handler數量,預設為10,適當的增大,可以提高服務端同時接收請求的執行緒數量,一般為10 的整數倍

2 >合理的設定memstore的上下限

3 >調整影響合併的檔案數,就是調整觸發storefile進行合併的檔案數量

4 >合理的設定memstore的flush因子,也就是觸發memstore進行flush的記憶體大小

5 >調整zookeeper的會話時間,避免hmaster察覺某個rs宕機的時間太長

4、表設計優化

1 >開啟布隆過濾器

2 >調整列簇塊的大小,也就是hfile的大小

3 >設定列簇的最大版本數,避免一些更新非常頻繁的應用效率低下

4 >設定ttl,讓過期的資料自動刪除

5 >設定in memory屬性,就放在in memory佇列中

一些調優引數

select sum pins reloads sum pins lib cache from v librarycache 查詢sql 分析解析率,大於90 說明sql解析正常,無需更改,至於更改方法,研究中 select sum gets getmisses sum gets hit from ...

WAS的一些重要調優引數

在著手進行 應用程式 伺服器的優化之前,首先進行 應用程式和操作 系統的優化是乙個更好的選擇。尤其是應用程式的優化,通過對應用程式中影響 效能的部分進行重新的設計和調整,往往能夠帶來比單純的引數調優更為巨大的效能提公升。對於一般的j2ee應用程式而言,was中最重要的優化引數包括針對jvm web ...

mysql調優的一些方面

1.首先的一點就是可以做乙個mysql集群實現讀寫分離 2.查詢sql慢日誌,給一些表做索引 3.調整mysql引數 設定合理的key buffer size,它是指索引緩衝區的大小,決定了索引的處理速度。大概的分配為1g設定128m,2g為256m,依此類推。檢視key buffer size的值...