偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

HBase相對(duì)Hive查詢速度快的對(duì)比

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

首先Hive的底層首先是MR,是屬于批處理處理時(shí)間相對(duì)較長(zhǎng),不屬于實(shí)時(shí)讀寫。在其架構(gòu)上HBase和Hive有很大的區(qū)別。

 

架構(gòu)介紹:

Hive架構(gòu)

  • (1)用戶接口主要有三個(gè):CLI,Client 和 WUI。其中最常用的是CLI,Cli啟動(dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè)Hive副本。Client是Hive的客戶端,用戶連接至HiveServer。在啟動(dòng) Client模式的時(shí)候,需要指出Hive Server所在節(jié)點(diǎn),并且在該節(jié)點(diǎn)啟動(dòng)Hive Server。 WUI是通過瀏覽器訪問Hive。
  • (2)Hive將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。
  • (3)解釋器、編譯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成。生成的查詢計(jì)劃存儲(chǔ)在HDFS中,并在隨后有MapReduce調(diào)用執(zhí)行。
  • (4)Hive的數(shù)據(jù)存儲(chǔ)在HDFS中,大部分的查詢、計(jì)算由MapReduce完成(包含*的查詢,比如select* from tbl不會(huì)生成MapRedcue任務(wù))。

 


HBase 架構(gòu)

Client

  • 包含訪問HBase的接口并維護(hù)cache來加快對(duì)HBase的訪問

Zookeeper

  • 保證任何時(shí)候,集群中只有一個(gè)master
  • 存貯所有Region的尋址入口。
  • 實(shí)時(shí)監(jiān)控Region server的上線和下線信息。并實(shí)時(shí)通知Master
  • 存儲(chǔ)HBase的schema和table元數(shù)據(jù)

Master

  • 為Region server分配region
  • 負(fù)責(zé)Region server的負(fù)載均衡
  • 發(fā)現(xiàn)失效的Region server并重新分配其上的region
  • 管理用戶對(duì)table的增刪改操作

RegionServer

  • Region server維護(hù)region,處理對(duì)這些region的IO請(qǐng)求
  • Region server負(fù)責(zé)切分在運(yùn)行過程中變得過大的region

Memstore 與 storefile

  • 一個(gè)region由多個(gè)store組成,一個(gè)store對(duì)應(yīng)一個(gè)CF(列族)
  • store包括位于內(nèi)存中的memstore和位于磁盤的storefile寫操作先寫入memstore,當(dāng)memstore中的數(shù)據(jù)達(dá)到某個(gè)閾值,hregionserver會(huì)啟動(dòng)flashcache進(jìn)程寫入storefile,每次寫入形成單獨(dú)的一個(gè)storefile
  • 當(dāng)storefile文件的數(shù)量增長(zhǎng)到一定閾值后,系統(tǒng)會(huì)進(jìn)行合并(minor、major compaction),在合并過程中會(huì)進(jìn)行版本合并和刪除工作(majar),形成更大的storefile
  • 當(dāng)一個(gè)region所有storefile的大小和數(shù)量超過一定閾值后,會(huì)把當(dāng)前的region分割為兩個(gè),并由hmaster分配到相應(yīng)的regionserver服務(wù)器,實(shí)現(xiàn)負(fù)載均衡

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

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

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

 

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

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

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

  1. hbase是可劃分成多個(gè)region,并且到達(dá)一定界限會(huì)將region橫向切分
  2. 鍵是排好序的
  3. 按列存儲(chǔ)的

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

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

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

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

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

責(zé)任編輯:未麗燕 來源: 搜狐
相關(guān)推薦

2022-12-15 18:20:46

ClickHouse存儲(chǔ)引擎

2018-11-12 12:02:54

SSD硬盤最快

2023-12-18 16:40:23

OxlintJavaScripRust

2024-10-30 09:42:43

固態(tài)硬盤SSD閃存

2020-12-02 06:13:29

Redis連接池

2010-04-27 09:34:21

2012-05-24 16:07:17

惠普激光打印機(jī)

2011-11-29 16:33:29

惠普激光打印機(jī)

2012-04-19 15:17:52

方正掃描儀

2022-10-09 19:02:06

DequexjjdogofferLast

2011-05-07 10:26:20

激光打印機(jī)

2012-02-06 15:47:09

惠普激光打印機(jī)

2021-01-04 09:58:46

5G6G運(yùn)營(yíng)商

2012-06-20 13:17:29

惠普激光打印機(jī)

2011-08-10 17:46:17

松下傳真機(jī)

2011-12-14 15:25:33

惠普激光打印機(jī)

2018-02-08 09:07:19

Opera 瀏覽器火狐

2012-03-12 11:48:44

惠普激光打印機(jī)

2020-10-15 09:19:36

Elasticsear查詢速度

2021-12-15 10:39:49

谷歌Android Go應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)