hive架構元件以及使用

2022-05-08 14:57:08 字數 2620 閱讀 5477

hive說明:

1,hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供類sql查詢功能

2,hive 的效率取決於 mapreduce或者spark

3,hive將 sql語句翻譯成mapreduce程式,然後yarn->hdfs

4,hive 將表結構儲存於額外的資料庫,例如mysql,也自帶了derty資料庫,啟動hive之前需要格式化derty(新建metastore_db檔案)

5,metastore_db裡面儲存了derby的元資料(存放著資料檔案的位置與資料文檔案的列名,每個列(行,複雜資料型別)之間是什麼符號進行區分的等等.)

6,2,hive只適合用來做批量資料統計分析

hive命令

#

會在當前目錄下簡歷metastore_db的資料庫

#遇到問題,把metastore_db刪掉,重新執行命令

#次執行hive時應該還在同一目錄,預設到當前目錄下尋找metastore,找不到建立!

schematool -initschema -dbtype derby

hive與hadoop的關係

1,hive利用hdfs儲存資料,利用mapreduce查詢資料

hive資料模型:

1,db:在hdfs中表現為$目錄下乙個資料夾

2,table:在hdfs中表現所屬db目錄下乙個資料夾

3,external table:與table類似,不過其資料存放位置可以在任意指定路徑

4,partition:在hdfs中表現為table目錄下的子目錄,使用者通過指定乙個或多個partition key,決定資料存放方式,進而優化資料的查詢

5,bucket:在hdfs中表現為同乙個表目錄下根據hash雜湊之後的多個檔案,『桶』

hive啟動方式:

#

後台啟動,寫入日誌與 err資訊

nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

hive連線方式:
#

使用 beeline客戶端連線

#啟動 beeline時就連線(hive-site.xml 配置了使用者名稱密碼)

bin/beeline -u jdbc:hive2://mini1:10000

hive語句例項
#

建立表 doc

create table doc(line string);

#將 hdfs 根目錄下 wcinput 檔案關聯到 doc表之中,行對列

load data inpath '

/wcinput

'overwrite into table doc;

#表之中的資料按照' '切割

select split(line, '

') from

doc;

#將切割後的資料,乙個單詞一行作為列存到另一張表之中

select explode(split(line, '

')) as world from

doc;

create table word_counts as select word, count(1) as count from (select explode(split(line, '

')) as word from doc) w group by word order by word;

hive執行架構

hive hadoop互動過程

驅動( driver )

編譯器( hive 的核心)

1,語法解析器( parsedriver )

將查詢字串轉換成解析樹表示式

2,語法分析器( semanticanalyzer )

將解析樹轉換成基於語句塊的內部查詢表示式。

3,邏輯計畫生成器( logical plan generator )

將內部查詢表示式轉換為邏輯計畫,這些計畫由邏輯操作樹組成。

操作符是 hive 的最小處理單元 , 每個操作符處理代表一道 hdfs 操作或 mr 作業

4,查詢計畫生成器( query plan generator )

將邏輯計畫轉化成物理計畫( mr task )

優化器優化器是乙個演化元件。當前,它的規則是:列修剪,謂詞下壓。

執行器編譯器將操作樹切分為乙個 task 鏈( dag ),執行器會順序執行其中所有 task ;如

果 task 鏈( dag )不存在依賴關係時,可採用併發執行的方式進行 job 的執行

Hive元件以及執行過程

對hive的基本組成進行了總結 1 元件 元儲存 metastore 儲存 系統目錄以及關於表 列 分割槽等的元資料 的元件。驅動 driver 控制 hiveql 生命週期的元件,當 hiveql 查詢穿過 hive時。該驅動管理著會話控制代碼以及任何會話的統計。查詢編譯器 query compi...

HIVE架構以及HIVE常見問題

hive是執行在yarn上的,資料儲存在hdfs上。將sql語句轉換為mapreduce,當然hive本身做了一些優化,有些任務不會走mapreduce。hive其實就是把結構化的資料檔案對映到表中,hive表的元資料資訊儲存在關係型資料庫中,具體可以參見我的另一篇部落格,配置了mysql資料庫。s...

使用「元件」優化遊戲架構

technorati 標籤 component game framework 近日一直在思考如何將game framework設計的更加具有實用性和復用性。搜尋了一下game framework,出現的有用的資訊非常的少,足見game framework的普及遠不如game engine。一般來講我...