大數(shù)據(jù)“復(fù)活”記
1074
2025-04-06
1.???? Hive介紹
Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供類SQL的查詢功能。
Hive基本原理是將HQL語句自動轉(zhuǎn)換成可以在計算引擎上執(zhí)行的任務(wù)。
Hive 在加載數(shù)據(jù)過程中不會對數(shù)據(jù)進行任何的修改,只是將數(shù)據(jù)移動到HDFS 中Hive 設(shè)定的目錄下。
2.???? Hive應(yīng)用場景
Hive適合于數(shù)據(jù)倉庫應(yīng)用程序,進行靜態(tài)數(shù)據(jù)分析,不需要快速響應(yīng)給出結(jié)果,而且數(shù)據(jù)本身不會頻繁變化。Hive不支持OLTP(聯(lián)機事務(wù)處理),更接近OLAP(聯(lián)機分析技術(shù))工具。
3.???? Hive與傳統(tǒng)數(shù)據(jù)庫比較
Hive不推薦進行記錄級別的插入、更新和刪除。
Hive支持struct,map和array集合數(shù)據(jù)類型。破壞標準格式會增大數(shù)據(jù)冗余,導(dǎo)致消耗不必要的磁盤空間,可能造成數(shù)據(jù)不一致。但是在大數(shù)據(jù)系統(tǒng)中,按數(shù)據(jù)集進行封裝可以減少尋址次數(shù),提升查詢速度,提高吞吐量。
Hive是讀時模式。保存表數(shù)據(jù)時不對數(shù)據(jù)進行校驗,從而提高加載速度,在查詢時驗證,不符合格式的數(shù)據(jù)設(shè)置為NULL。
Hive不支持OLTP(聯(lián)機事務(wù)處理),更接近OLAP(聯(lián)機分析技術(shù))工具。因為Hive任務(wù)的啟動過程需要較長時間, Hive查詢延時比較嚴重。
4.???? Hive架構(gòu)
MetaStore:存儲表,列和分區(qū)等元數(shù)據(jù),為關(guān)系型數(shù)據(jù)庫。
Driver:管理HiveQL執(zhí)行的生命周期并貫穿Hive任務(wù)整個執(zhí)行期間。
Compiler :編譯HiveQL并將其轉(zhuǎn)化為一系列相互依賴的任務(wù)。
Optimizer:優(yōu)化器,分為邏輯優(yōu)化器和物理優(yōu)化器,分別對HiveQL生成的執(zhí)行計劃和任務(wù)進行優(yōu)化。
Executor:按照任務(wù)的依賴關(guān)系分別執(zhí)行任務(wù)。
ThriftServer:提供thrift接口,作為JDBC和ODBC的服務(wù)端,并將Hive和其他應(yīng)用程序集成起來。
Clients:包含命令行接口(CLI/Beeline) 和JDBC/ODBC 接口,為用戶訪問提供接口。
WebHcat:負責(zé)對外提供DDL、提交任務(wù)等REST API服務(wù)。
5.???? Hive數(shù)據(jù)存儲模型
Hcatalog:Hadoop的表和存儲管理層,它使使用不同數(shù)據(jù)處理工具的用戶能夠更輕松地在網(wǎng)格上讀寫數(shù)據(jù)。
數(shù)據(jù)庫:創(chuàng)建表時如果不指定數(shù)據(jù)庫,則默認為default數(shù)據(jù)庫。
表:物理概念,實際對應(yīng)HDFS上的一個目錄。
分區(qū):對應(yīng)所在表所在目錄下的一個子目錄,分區(qū)可以很明顯的提高查詢效率。
桶:對應(yīng)表或分區(qū)所在路徑的一個文件,數(shù)據(jù)按照某個字段的值Hash后放入某個桶中,桶內(nèi)可排序。
傾斜數(shù)據(jù):數(shù)據(jù)集中于個別字段值的場景。
正常數(shù)據(jù):不存在傾斜的數(shù)據(jù)。
6.???? Hive編譯流程
Parser將HQL轉(zhuǎn)換成抽象語法樹。
Semantic Analyzer將抽象語法樹轉(zhuǎn)換成查詢塊。
Logic Plan Generator將查詢塊轉(zhuǎn)換成邏輯查詢計劃。
LogicalOptimizer優(yōu)化邏輯查詢計劃。
Physical Plan Generator將邏輯計劃轉(zhuǎn)換成物理計劃。
PhysicalOptimizer優(yōu)化物理計劃。
mrs Hive EI企業(yè)智能
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。