欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂大數(shù)據(jù)開發(fā)解析HBase和Hive的查詢處理速度對比

2018-09-26 15:10:28 2032瀏覽

今天扣丁學(xué)堂大數(shù)據(jù)培訓(xùn)老師給大家介紹一下關(guān)于HBase和Hive的查詢處理速度對比,首先Hive的底層首先是MR,是屬于批處理處理時間相對較長,不屬于實時讀寫,在其架構(gòu)上HBase和Hive有很大的區(qū)別,下面我們一起來看一下吧。

Hive架構(gòu):



(1)用戶接口主要有三個:CLI,Client和WUI。其中最常用的是CLI,Cli啟動的時候,會同時啟動一個Hive副本。Client是Hive的客戶端,用戶連接至HiveServer。在啟動Client模式的時候,需要指出HiveServer所在節(jié)點,并且在該節(jié)點啟動HiveServer。WUI是通過瀏覽器訪問Hive。

(2)Hive將元數(shù)據(jù)存儲在數(shù)據(jù)庫中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。

(3)解釋器、編譯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃的生成。生成的查詢計劃存儲在HDFS中,并在隨后有MapReduce調(diào)用執(zhí)行。

(4)Hive的數(shù)據(jù)存儲在HDFS中,大部分的查詢、計算由MapReduce完成(包含*的查詢,比如select*fromtbl不會生成MapRedcue任務(wù))。

HBase架構(gòu):



Client

包含訪問HBase的接口并維護cache來加快對HBase的訪問

Zookeeper

保證任何時候,集群中只有一個master

存貯所有Region的尋址入口。

實時監(jiān)控Regionserver的上線和下線信息。并實時通知Master

存儲HBase的schema和table元數(shù)據(jù)

Master

為Regionserver分配region

負責(zé)Regionserver的負載均衡

發(fā)現(xiàn)失效的Regionserver并重新分配其上的region

管理用戶對table的增刪改操作

RegionServer

Regionserver維護region,處理對這些region的IO請求

Regionserver負責(zé)切分在運行過程中變得過大的region

Memstore與storefile

一個region由多個store組成,一個store對應(yīng)一個CF(列族)

store包括位于內(nèi)存中的memstore和位于磁盤的storefile寫操作先寫入memstore,當(dāng)memstore中的數(shù)據(jù)達到某個閾值,hregionserver會啟動flashcache進程寫入storefile,每次寫入形成單獨的一個storefile

當(dāng)storefile文件的數(shù)量增長到一定閾值后,系統(tǒng)會進行合并(minor、majorcompaction),在合并過程中會進行版本合并和刪除工作(majar),形成更大的storefile

當(dāng)一個region所有storefile的大小和數(shù)量超過一定閾值后,會把當(dāng)前的region分割為兩個,并由hmaster分配到相應(yīng)的regionserver服務(wù)器,實現(xiàn)負載均衡

客戶端檢索數(shù)據(jù),先在memstore找,找不到再找storefile

–HBase能提供實時計算服務(wù)主要原因是由其架構(gòu)和底層的數(shù)據(jù)結(jié)構(gòu)決定的,即由LSM-Tree(Log-StructuredMerge-Tree)+HTable(region分區(qū))+Cache決定——客戶端可以直接定位到要查數(shù)據(jù)所在的HRegionserver服務(wù)器,然后直接在服務(wù)器的一個region上查找要匹配的數(shù)據(jù),并且這些數(shù)據(jù)部分是經(jīng)過cache緩存的。

–前面說過HBase會將數(shù)據(jù)保存到內(nèi)存中,在內(nèi)存中的數(shù)據(jù)是有序的,如果內(nèi)存空間滿了,會刷寫到HFile中,而在HFile中保存的內(nèi)容也是有序的。當(dāng)數(shù)據(jù)寫入HFile后,內(nèi)存中的數(shù)據(jù)會被丟棄。



–多次刷寫后會產(chǎn)生很多小文件,后臺線程會合并小文件組成大文件,這樣磁盤查找會限制在少數(shù)幾個數(shù)據(jù)存儲文件中。HBase的寫入速度快是因為它其實并不是真的立即寫入文件中,而是先寫入內(nèi)存,隨后異步刷入HFile。所以在客戶端看來,寫入速度很快。另外,寫入時候?qū)㈦S機寫入轉(zhuǎn)換成順序?qū)?,?shù)據(jù)寫入速度也很穩(wěn)定。

–而讀取速度快是因為它使用了LSM樹型結(jié)構(gòu),而不是B或B+樹。磁盤的順序讀取速度很快,但是相比而言,尋找磁道的速度就要慢很多。HBase的存儲結(jié)構(gòu)導(dǎo)致它需要磁盤尋道時間在可預(yù)測范圍內(nèi),并且讀取與所要查詢的rowkey連續(xù)的任意數(shù)量的記錄都不會引發(fā)額外的尋道開銷。比如有5個存儲文件,那么最多需要5次磁盤尋道就可以。而關(guān)系型數(shù)據(jù)庫,即使有索引,也無法確定磁盤尋道次數(shù)。而且,HBase讀取首先會在緩存(BlockCache)中查找,它采用了LRU(最近最少使用算法),如果緩存中沒找到,會從內(nèi)存中的MemStore中查找,只有這兩個地方都找不到時,才會加載HFile中的內(nèi)容,而上文也提到了讀取HFile速度也會很快,因為節(jié)省了尋道開銷。

–如果快速查詢(從磁盤讀數(shù)據(jù)),hbase是根據(jù)rowkey查詢的,只要能快速的定位rowkey,就能實現(xiàn)快速的查詢,主要是以下因素:

hbase是可劃分成多個region,并且到達一定界限會將region橫向切分

鍵是排好序的

按列存儲的

–列如:能快速找到行所在的region(分區(qū)),假設(shè)表有10億條記錄,占空間1TB,分列成了500個region,1個region占2個G.最多讀取2G的記錄,就能找到對應(yīng)記錄;

–其次,是按列存儲的,其實是列族,假設(shè)分為3個列族,每個列族就是666M,如果要查詢的東西在其中1個列族上,1個列族包含1個或者多個HStoreFile,假設(shè)一個HStoreFile是128M,該列族包含5個HStoreFile在磁盤上.剩下的在內(nèi)存中。

然后,排好序了的,你要的記錄有可能在最前面,也有可能在最后面,假設(shè)在中間,我們只需遍歷2.5個HStoreFile共300M。

最后,每個HStoreFile(HFile的封裝),是以鍵值對(key-value)方式存儲,只要遍歷一個個數(shù)據(jù)塊中的key的位置,并判斷符合條件可以了。一般key是有限的長度,假設(shè)跟value是1:20(忽略HFile其他快,只需要15M就可獲取的對應(yīng)的記錄,按照磁盤的訪問100M/S,只需0.15秒。加上塊緩存機制(LRU原則),會取得更高的效率。

實時查詢,可以認為是從內(nèi)存中查詢,一般響應(yīng)時間在1秒左右。HBase的機制是將數(shù)據(jù)先寫入到內(nèi)存中(緩存Buffer中),當(dāng)數(shù)據(jù)量達到一定的量(如128M),產(chǎn)生溢寫磁盤操作,在內(nèi)存中,是不進行數(shù)據(jù)的更新或合并操作的,只增加數(shù)據(jù),這使得用戶的寫操作只要進入內(nèi)存中就可以立即返回,保證了HBaseI/O的高性能。

以上就是關(guān)于扣丁學(xué)堂大數(shù)據(jù)開發(fā)解析HBase和Hive查詢處理速度對比的詳細介紹,希望對同學(xué)們有所幫助,spring實現(xiàn)Ioc的原理。扣丁學(xué)堂提供完整大數(shù)據(jù)學(xué)習(xí)路線內(nèi)容包含Linux&&Hadoop生態(tài)體系、大數(shù)據(jù)計算框架體系、云計算體系、機器學(xué)習(xí)&&深度學(xué)習(xí)等大數(shù)據(jù)視頻教程內(nèi)容,根據(jù)大數(shù)據(jù)學(xué)習(xí)路線圖可以讓你對學(xué)習(xí)大數(shù)據(jù)需要掌握的知識有個清晰的了解,并快速入門大數(shù)據(jù)開發(fā),扣丁學(xué)堂大數(shù)據(jù)學(xué)習(xí)群:827371640

扣丁學(xué)堂微信公眾號


【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】 



查看更多關(guān)于“大數(shù)據(jù)培訓(xùn)資訊”的相關(guān)文章>

標(biāo)簽: 大數(shù)據(jù)培訓(xùn) 大數(shù)據(jù)視頻教程 大數(shù)據(jù)分析培訓(xùn) 大數(shù)據(jù)學(xué)習(xí)視頻 Hadoop生態(tài)圈

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部