Hive的架構(gòu)

Hive的架構(gòu)原理


image
  1. 兩種客戶(hù)端

(1)CLI(command-line interface):命令行客戶(hù)端(可以在shell中操作);

(2)JDBC客戶(hù)端

  1. 四種驅(qū)動(dòng)Driver

(1)SQL Parser解析器:檢查sql語(yǔ)法是否有錯(cuò)誤;

(2)Physical Plan編譯器:把sql語(yǔ)句轉(zhuǎn)化成mr程序;

(3)Query Optimizer優(yōu)化器:優(yōu)化sql語(yǔ)句;

(4)Execution執(zhí)行器:執(zhí)行MR程序。

  1. 元數(shù)據(jù)庫(kù)Meta store

(1)Meta store是Hive數(shù)據(jù)庫(kù)中的一個(gè)庫(kù),用于存儲(chǔ)處理數(shù)據(jù)的元數(shù)據(jù),包括:

表名、表所屬的數(shù)據(jù)庫(kù)(默認(rèn)是default)、表的擁有者、列/分區(qū)字段、表的類(lèi)型(是否是外部表)、表的數(shù)據(jù)所在目錄等。

(2)Meta store默認(rèn)存儲(chǔ)在Hive自帶的derby數(shù)據(jù)庫(kù)中,但因?yàn)閐erby無(wú)法實(shí)現(xiàn)并發(fā),實(shí)際工作中一般將derby替換為mysql;

(3)Hive中處理的數(shù)據(jù)分兩部分存放:

     ① 處理的結(jié)構(gòu)化數(shù)據(jù),存儲(chǔ)在HDFS中

     ② 表的元數(shù)據(jù)存儲(chǔ)在元數(shù)據(jù)庫(kù)mysql中

這樣,有了表的元數(shù)據(jù)信息,就能找到對(duì)應(yīng)的字段;然后把字段映射到結(jié)構(gòu)化數(shù)據(jù)中,這樣就可以通過(guò)映射形成一張?zhí)摫恚?/p>

也就是說(shuō),表的元數(shù)據(jù)和mysql中的結(jié)構(gòu)化數(shù)據(jù),通過(guò)映射,構(gòu)成一張?zhí)摫?,用于Hive查詢(xún)數(shù)據(jù)分析。

hive的存儲(chǔ)過(guò)程:

啟動(dòng)hive時(shí),會(huì)初始化hive,這時(shí)會(huì)在mysql中生成大約36張表(后續(xù)隨著業(yè)務(wù)的復(fù)雜會(huì)增加),然后創(chuàng)建表,會(huì)在mysql中存放這個(gè)表的信息(不是以表的形式存在的,而是把表的屬性以數(shù)據(jù)的形式放在mysql中,這樣在hive中使用sql命令一樣是能夠查到這張表的)。然后把本地的文本文件使用hive命令格式化導(dǎo)入到表中,這樣這些數(shù)據(jù)就存放到hdfs中,而不是在mysql或hive中。
————————————————
版權(quán)聲明:本文為CSDN博主「攻城獅Kevin」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wx1528159409/java/article/details/84667658

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容