當前位置:編程學習大全網 - 源碼下載 - [hive]壹種基於hive日誌分析的大數據存儲優化方法_王_百度文庫

[hive]壹種基於hive日誌分析的大數據存儲優化方法_王_百度文庫

基於Hive日誌分析的大數據存儲優化方法王百度文庫

/鏈接?URL = jgtz 12 wnpiz nlt 19464 bsvsmbfxqofs 8 cuey 2 jngr 6m-5 pnpeaqctib 4 laqtioiq 4 BAE mxml 0 kwl 1klwgnmfxgu 05 mbj 4 lsg 9 bzjd 6 spg

2 .壹種基於Hive日誌的大數據存儲優化方法

2.1優化方法概述

Hive作為Hadoop開源分布式平臺下的數據倉庫工具,用於根據用戶需求將存儲在HDFS上的結構化數據映射成數據表,並能為用戶提供類似SQL的HiveQL查詢功能,將用戶提交的查詢轉化為Map-Reduce任務執行。Hive的優勢在於提供了類似SQL的查詢接口,快速實現數據的統計分析功能,無需編寫專門的Map-Reduce任務。也正因為如此,壹般的Hive數據倉庫並沒有進行特別的優化,其查詢分析效率也有很大的優化空間[4]。

根據HiveQL的查詢日誌分析和現有數據存儲結構的關聯特性,提出了壹種HiveQL數據存儲的通用優化方法。

這個策略認為優化壹個專用的Hive海量數據倉庫分為以下幾個步驟:1。分析常見的查詢日誌,根據用戶習慣定制數據分區結構。2.使用專門優化的列存儲結構作為數據導入格式。3.根據數據表和表中字段的實際物理意義,合並壓縮重復字段和數據表。4.根據數據表中字段的實際值,優化字段的存儲類型。5.編寫UDF,在不改變用戶使用習慣的情況下應用上述優化。其中,1.2。數據導入階段優化了兩點,3.4.5。是數據表字段和表結構的優化,需要用UDF進行。通過以上優化過程,可以大大節省HiveQL的查詢時間和數據在HDFS上的占用空間。

2.2根據查詢日誌進行分區優化

Hive的日誌記錄了Hive的運行狀態,為本文分析運營商的使用習慣提供了很大的幫助。我們可以通過編寫Hive的EXPAIN函數來分析日誌。通過使用Hive的EXPAIN函數,我們可以得到查詢語句的抽象語法樹。通過抽象的語法樹,我們可以快速得到查詢語句的語法結構。

例如下面這條語句:select col 1,sum(col 2)from tab 1 group by col 1,通過EXPLAIN命令,我們可以得到如下結果:

抽象語法樹:

(TOK _ QUERY(TOK _ FROM(TOK _ tab ref(TOK _ tab name tab 1)))(TOK _ INSERT(TOK _ DESTINATION(TOK _ DIR TOK _ TMP _ FILE))(TOK _ sele xpr(TOK _ TABLE _ OR _ COL 1))(TOK _ sele xpr(TOK _ FUNCTION sum(TOK _ TABLE _ OR _ COL 2)))(TOK _ group by(TOK _ TABLE _ OR _ OR)

我們可以通過使用正則表達式來捕獲特征數據,從而得到這個句子的語法結構。同時,通過編寫Shell腳本,批量執行EXPLAIN命令,快速了解用戶常見的語法習慣,為後期的分區優化提供數據支持。通過對用戶常用的字段進行分區,方便的是大大節省了壹些常用查詢讀取硬盤中數據所消耗的時間。通常在沒有優化過的Hive系統中,每次查詢提交後,Hive都要掃描所有符合輸入數據要求的條目。單個任務提交後,可以根據任務的限制條件只掃描壹些關鍵分區的數據,大大提高了Hive查詢執行的效率。

2.3選擇合適的Hive數據存儲格式。

在Hive中創建數據表時,需要指定文件存儲格式。在Hive 0.90版本中,常用的數據格式分為TEXTFILE、SEQUNCEFILE、RCFILE和自定義格式。以上格式的主要區別在於行存儲和列存儲,以及不同的壓縮算法。根據Hive數據表的特點和通過Hive日誌觀察到的用戶使用習慣,通過選擇合適的文件存儲格式,可以大大提高查詢效率,減少查詢時間。

4結論

本文給出了壹種基於Hive日誌分析的大數據存儲優化方法。通過實際測試可以看出,采用這種優化方法的Hive數據存儲系統在磁盤空間利用率和查詢效率方面有了很大的提高。

  • 上一篇:弱弱的問壹下cocos引擎和cocos creator有什麽區別
  • 下一篇:高收益流動性挖礦平臺—QKSWAP
  • copyright 2024編程學習大全網