Hbase原理分享

一留储、HBase簡(jiǎn)介

Hbase是什么

HBase是一種構(gòu)建在HDFS之上的分布式翼抠、面向列、多版本欲鹏、非關(guān)系型的數(shù)據(jù)庫(kù)机久。在需要實(shí)時(shí)讀寫、隨機(jī)訪問(wèn)超大規(guī)模數(shù)據(jù)集時(shí)赔嚎,可以使用HBase膘盖。HBase 是Google Bigtable 的開(kāi)源實(shí)現(xiàn)。

HBase的特點(diǎn)

大:一個(gè)表可以有上億行尤误,上百萬(wàn)列侠畔。

面向列:面向列(組)的存儲(chǔ)和權(quán)限控制,列(組)獨(dú)立檢索损晤。

稀疏:對(duì)于為空(NULL)的列软棺,并不占用存儲(chǔ)空間,因此尤勋,表可以設(shè)計(jì)的非常稀疏喘落。

無(wú)模式:每一行都有一個(gè)可以排序的主鍵和任意多的列,列可以根據(jù)需要?jiǎng)討B(tài)增加最冰,同一張表中不同的行可以有截然不同的列瘦棋。

數(shù)據(jù)多版本:每個(gè)單元中的數(shù)據(jù)可以有多個(gè)版本,默認(rèn)情況下暖哨,版本號(hào)自動(dòng)分配赌朋,版本號(hào)就是單元格插入時(shí)的時(shí)間戳。

數(shù)據(jù)類型單一:HBase中的數(shù)據(jù)都是字符串,沒(méi)有類型沛慢,存儲(chǔ)在hbase上的都是字節(jié)數(shù)組赡若。

二、HBase數(shù)據(jù)模型

HBase 以表的形式存儲(chǔ)數(shù)據(jù)团甲。表由行和列組成逾冬。列劃分為若干個(gè)列族(row family),如下圖所示伐庭。

1) HBase的邏輯數(shù)據(jù)模型

image.png

2) HBase的物理數(shù)據(jù)模型

image.png

邏輯數(shù)據(jù)模型中空白cell在物理上是不存儲(chǔ)的粉渠,因此若一個(gè)請(qǐng)求為要獲取t8時(shí)間的contents:html分冈,他的結(jié)果就是空圾另。相似的,若請(qǐng)求為獲取t9時(shí)間的anchor:my.look.ca雕沉,結(jié)果也是空集乔。但是,如果不指明時(shí)間坡椒,將會(huì)返回最新時(shí)間的行扰路,每個(gè)最新的都會(huì)返回

  • Row Key

與 NoSQL 數(shù)據(jù)庫(kù)一樣,Row Key 是用來(lái)檢索記錄的主鍵倔叼。幾種訪問(wèn) HBase table 中的行方式:

1)通過(guò)單個(gè) Row Key 訪問(wèn)汗唱。

2)通過(guò) Row Key 的 range 全表掃描。

3)Row Key 可以使任意字符串(最大長(zhǎng)度是64KB丈攒,實(shí)際應(yīng)用中長(zhǎng)度一般為 10 ~ 100bytes)哩罪,在HBase 內(nèi)部,Row Key 保存為字節(jié)數(shù)組巡验。

  • 列族

HBase 表中的每個(gè)列都?xì)w屬于某個(gè)列族际插。列族是表的 Schema 的一部分(而列不是),必須在使用表之前定義显设。列名都以列族作為前綴框弛,例如 courses:history、courses:math 都屬于 courses 這個(gè)列族捕捂。

訪問(wèn)控制瑟枫、磁盤和內(nèi)存的使用統(tǒng)計(jì)都是在列族層面進(jìn)行的。在實(shí)際應(yīng)用中指攒,列族上的控制權(quán)限能幫助我們管理不同類型的應(yīng)用慷妙, 例如,允許一些應(yīng)用可以添加新的基本數(shù)據(jù)幽七、一些應(yīng)用可以讀取基本數(shù)據(jù)并創(chuàng)建繼承的列族景殷、 一些應(yīng)用則只允許瀏覽數(shù)據(jù)(甚至可能因?yàn)殡[私的原因不能瀏覽所有數(shù)據(jù))。

  • Cell

時(shí)間戳HBase 中通過(guò) Row 和 Columns 確定的一個(gè)存儲(chǔ)單元稱為 Cell。每個(gè) Cell 都保存著同一份數(shù)據(jù)的多個(gè)版本猿挚。 版本通過(guò)時(shí)間戳來(lái)索引咐旧,時(shí)間戳的類型是 64 位整型。時(shí)間戳可以由HBase(在數(shù)據(jù)寫入時(shí)自動(dòng))賦值绩蜻, 此時(shí)時(shí)間戳是精確到毫秒的當(dāng)前系統(tǒng)時(shí)間铣墨。時(shí)間戳也 可以由客戶顯示賦值。如果應(yīng)用程序要避免數(shù)據(jù)版本沖突办绝,就必須自己生成具有唯一性的時(shí)間戳伊约。每個(gè) Cell 中,不同版本的數(shù)據(jù)按照時(shí)間倒序排序孕蝉,即最新的數(shù)據(jù)排在最前面屡律。

為了避免數(shù)據(jù)存在過(guò)多版本造成的管理(包括存儲(chǔ)和索引)負(fù)擔(dān),HBase 提供了兩種數(shù)據(jù)版本回收方式降淮。 一是保存數(shù)據(jù)的最后 n 個(gè)版本超埋,二是保存最近一段時(shí)間內(nèi)的版本(比如最近七天)。用戶可以針對(duì)每個(gè)列族進(jìn)行設(shè)置佳鳖。

3) HBase物理存儲(chǔ)

Table 在行的方向上分割為多個(gè)HRegion霍殴,每個(gè)HRegion分散在不同的RegionServer中。

每個(gè)HRegion由多個(gè)Store構(gòu)成系吩,每個(gè)Store由一個(gè)memStore和0或多個(gè)StoreFile組成来庭,每個(gè)Store保存一個(gè)Columns Family

三、HBase系統(tǒng)架構(gòu)

1) HBase架構(gòu)圖

從HBase的架構(gòu)圖上可以看出穿挨,HBase中的組件包括Client月弛、Zookeeper、HMaster絮蒿、HRegionServer尊搬、HRegion、Store土涝、MemStore佛寿、StoreFile、HFile但壮、HLog等冀泻,接下來(lái)介紹他們的作用。

HBase中的每張表都通過(guò)行鍵按照一定的范圍被分割成多個(gè)子表(HRegion)蜡饵,默認(rèn)一個(gè)HRegion超過(guò)256M就要被分割成兩個(gè)弹渔,這個(gè)過(guò)程由HRegionServer管理,而HRegion的分配由HMaster管理溯祸。

  • Client

包含訪問(wèn)HBase的接口肢专,并維護(hù)cache來(lái)加快對(duì)HBase的訪問(wèn)舞肆。

  • Zookeeper

HBase依賴Zookeeper,默認(rèn)情況下HBase管理Zookeeper實(shí)例(啟動(dòng)或關(guān)閉Zookeeper),Master與RegionServers啟動(dòng)時(shí)會(huì)向Zookeeper注冊(cè)博杖。

保證任何時(shí)候椿胯,集群中只有一個(gè)master

實(shí)時(shí)監(jiān)控Region server的上線和下線信息。并實(shí)時(shí)通知給master

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

  • HMaster

為Region server分配region

負(fù)責(zé)Region server的負(fù)載均衡

發(fā)現(xiàn)失效的Region server并重新分配其上的region剃根。

處理schema更新請(qǐng)求哩盲。

  • HRegionServer

維護(hù)master分配給他的region,處理對(duì)這些region的io請(qǐng)求狈醉。

負(fù)責(zé)切分正在運(yùn)行過(guò)程中變的過(guò)大的region廉油。

注意:client訪問(wèn)hbase上的數(shù)據(jù)時(shí)不需要master的參與,因?yàn)閿?shù)據(jù)尋址訪問(wèn)zookeeper和region server苗傅,而數(shù)據(jù)讀寫訪問(wèn)region server抒线。master僅僅維護(hù)table和region的元數(shù)據(jù)信息,而table的元數(shù)據(jù)信息保存在zookeeper上金吗,因此master負(fù)載很低十兢。

  • HRegion

table在行的方向上分隔為多個(gè)Region趣竣。Region是HBase中分布式存儲(chǔ)和負(fù)載均衡的最小單元摇庙,即不同的region可以分別在不同的Region Server上,但同一個(gè)Region是不會(huì)拆分到多個(gè)server上遥缕。

Region按大小分隔卫袒,每個(gè)表一般是只有一個(gè)region。隨著數(shù)據(jù)不斷插入表单匣,region不斷增大夕凝,當(dāng)region的某個(gè)列族達(dá)到一個(gè)閾值時(shí)就會(huì)分成兩個(gè)新的region。

每個(gè)region由以下信息標(biāo)識(shí):< 表名,startRowkey,創(chuàng)建時(shí)間>

由目錄表(-ROOT-和.META.)記錄該region的endRowkey

  • Store

每一個(gè)region由一個(gè)或多個(gè)store組成户秤,至少是一個(gè)store码秉,hbase會(huì)把一起訪問(wèn)的數(shù)據(jù)放在一個(gè)store里面,即為每個(gè) ColumnFamily建一個(gè)store鸡号,如果有幾個(gè)ColumnFamily转砖,也就有幾個(gè)Store。一個(gè)Store由一個(gè)memStore和0或者 多個(gè)StoreFile組成鲸伴。 HBase以store的大小來(lái)判斷是否需要切分region

  • MemStore

memStore 是放在內(nèi)存里的府蔗。保存修改的數(shù)據(jù)即keyValues。當(dāng)memStore的大小達(dá)到一個(gè)閥值(默認(rèn)128MB)時(shí)汞窗,memStore會(huì)被flush到文 件姓赤,即生成一個(gè)快照。目前hbase 會(huì)有一個(gè)線程來(lái)負(fù)責(zé)memStore的flush操作仲吏。

  • StoreFile

memStore內(nèi)存中的數(shù)據(jù)寫到文件后就是StoreFile不铆,StoreFile底層是以HFile的格式保存蝌焚。

  • HFile

HBase中KeyValue數(shù)據(jù)的存儲(chǔ)格式,HFile是Hadoop的 二進(jìn)制格式文件誓斥,實(shí)際上StoreFile就是對(duì)Hfile做了輕量級(jí)包裝综看,即StoreFile底層就是HFile

HFile的存儲(chǔ)格式如下:

HFile由多個(gè)Data Block、Meta Block岖食、FileInfo红碑、Data Index、Meta Index泡垃、Trailer組成析珊,其中Data Block是HBase的最小存儲(chǔ)單元,在前文中提到的BlockCache就是基于Data Block的緩存的蔑穴。一個(gè)Data Block由一個(gè)魔數(shù)和一系列的KeyValue(Cell)組成忠寻,魔數(shù)是一個(gè)隨機(jī)的數(shù)字,用于表示這是一個(gè)Data Block類型存和,以快速監(jiān)測(cè)這個(gè)Data Block的格式奕剃,防止數(shù)據(jù)的破壞。Data Block的大小可以在創(chuàng)建Column Family時(shí)設(shè)置(HColumnDescriptor.setBlockSize())捐腿,默認(rèn)值是64KB纵朋,大號(hào)的Block有利于順序Scan,小號(hào)Block利于隨機(jī)查詢茄袖,因而需要權(quán)衡操软。Meta塊是可選的,F(xiàn)ileInfo是固定長(zhǎng)度的塊宪祥,它紀(jì)錄了文件的一些Meta信息聂薪,例如:AVG_KEY_LEN, AVG_VALUE_LEN, LAST_KEY, COMPARATOR, MAX_SEQ_ID_KEY等。Data Index和Meta Index紀(jì)錄了每個(gè)Data塊和Meta塊的其實(shí)點(diǎn)蝗羊、未壓縮時(shí)大小藏澳、Key(起始RowKey?)等耀找。Trailer紀(jì)錄了FileInfo翔悠、Data Index、Meta Index塊的起始位置涯呻,Data Index和Meta Index索引的數(shù)量等凉驻。其中FileInfo和Trailer是固定長(zhǎng)度的。

HFile里面的每個(gè)KeyValue對(duì)就是一個(gè)簡(jiǎn)單的byte數(shù)組复罐。但是這個(gè)byte數(shù)組里面包含了很多項(xiàng)涝登,并且有固定的結(jié)構(gòu)。我們來(lái)看看里面的具體結(jié)構(gòu):

上圖可知效诅,開(kāi)始是兩個(gè)固定長(zhǎng)度的數(shù)值胀滚,分別表示key的長(zhǎng)度和alue的長(zhǎng)度趟济。緊接著是Key,開(kāi)始是固定長(zhǎng)度的數(shù)值,表示RowKey的長(zhǎng)度咽笼,緊接著是RowKey顷编,然后是固定長(zhǎng)度的數(shù)值,表示Family的長(zhǎng)度剑刑,然后是Family,接著是Qualifier媳纬,然后是兩個(gè)固定長(zhǎng)度的數(shù)值,表示Time Stamp和Key Type(Put/Delete)施掏。Value部分沒(méi)有那么復(fù)雜的結(jié)構(gòu)钮惠,就是純粹的二進(jìn)制數(shù)據(jù)。

  • HLog

HLog(WAL log):WAL意為write ahead log七芭,用來(lái)做災(zāi)難恢復(fù)使用素挽,HLog記錄數(shù)據(jù)的所有變更,一旦region server 宕機(jī)狸驳,就可以從log中進(jìn)行恢復(fù)预明。

HLog文件就是一個(gè)普通的Hadoop Sequence File, Sequence File的value是key時(shí)HLogKey對(duì)象耙箍,其中記錄了寫入數(shù)據(jù)的歸屬信息撰糠,除了table和region名字外,還同時(shí)包括sequence number和timestamp究西,timestamp是寫入時(shí)間窗慎,sequence number的起始值為0,或者是最近一次存入文件系統(tǒng)中的sequence number卤材。 Sequence File的value是HBase的KeyValue對(duì)象,即對(duì)應(yīng)HFile中的KeyValue峦失。

上圖中是HLog文件的結(jié)構(gòu)扇丛,其實(shí)HLog文件就是一個(gè)普通的Hadoop Sequence File,Sequence File的Key是HLogKey對(duì)象尉辑,HLogKey中記錄了寫入數(shù)據(jù)的歸屬信息帆精,除了table和Region名字外,同時(shí)還包括sequence number和timestamp,timestamp是”寫入時(shí)間”隧魄,sequence number 的起始值為0卓练,或者是最近一次存入文件系統(tǒng)中的sequence number。

HLog Sequence File 的Value是HBase的KeyValue對(duì)象昂购啄,即對(duì)應(yīng)HFile中的KeyValue襟企。

2) HRegion定位

通過(guò)zk里的文件/hbase/rs得到-ROOT-表的位置。-ROOT-表只有一個(gè)region狮含。

通過(guò)-ROOT-表查找.META.表的第一個(gè)表中相應(yīng)的region的位置顽悼。其實(shí)-ROOT-表是.META.表的第一個(gè)region曼振;.META.表中的每一個(gè)region 在-ROOT-表中都是一行記錄。

通過(guò).META.表找到所要的用戶表region的位置蔚龙。用戶表中的每個(gè)region在.META.表中都是一行記錄冰评。

-ROOT-表永遠(yuǎn)不會(huì)被分隔為多個(gè)region堕战,保證了最多需要三次跳轉(zhuǎn)攀芯,就能定位到任意的region。client會(huì)將查詢的位置 信息保存緩存起來(lái)萎馅,緩存不會(huì)主動(dòng)失效坑填,因此如果client上的緩存全部失效务荆,則需要進(jìn)行6次網(wǎng)絡(luò)來(lái)回,才能定位到正確的region穷遂,其中三次用來(lái)發(fā)現(xiàn) 緩存失效函匕,另外三次用來(lái)獲取位置信息。

提示:

-ROOT-表:表包含.META.表所在的region列表蚪黑,該表只有一個(gè)Region;Zookeeper中記錄了-ROOT-表的location

.META.表:表包含所有的用戶空間region列表盅惜,以及Region Server的服務(wù)器地址

hbase:meta表:高版本中已經(jīng)舍棄了ROOT和META表了,采用了這個(gè)表

四忌穿、HBase工作流程

HBase的流程圖

  • Client

首先當(dāng)一個(gè)請(qǐng)求產(chǎn)生時(shí)抒寂,HBase Client使用RPC(遠(yuǎn)程過(guò)程調(diào)用)機(jī)制與HMaster和HRegionServer進(jìn)行通信,對(duì)于管理類操作掠剑,Client與HMaster進(jìn)行RPC;對(duì)于數(shù)據(jù)讀寫操作屈芜,Client與HRegionServer進(jìn)行RPC。

  • Zookeeper

HBase Client使用RPC(遠(yuǎn)程過(guò)程調(diào)用)機(jī)制與HMaster和HRegionServer進(jìn)行通信朴译,但如何尋址呢井佑?由于Zookeeper中存儲(chǔ)了-ROOT-表的地址和HMaster的地址,所以需要先到Zookeeper上進(jìn)行尋址眠寿。

HRegionServer也會(huì)把自己以Ephemeral方式注冊(cè)到Zookeeper中躬翁,使HMaster可以隨時(shí)感知到各個(gè)HRegionServer的健康狀態(tài)。此外盯拱,Zookeeper也避免了HMaster的單點(diǎn)故障盒发。

  • HMaster

當(dāng)用戶需要進(jìn)行Table和Region的管理工作時(shí),就需要和HMaster進(jìn)行通信狡逢。HBase中可以啟動(dòng)多個(gè)HMaster,通過(guò)Zookeeper的Master Eletion機(jī)制保證總有一個(gè)Master運(yùn)行宁舰。

管理用戶對(duì)Table的增刪改查操作

管理HRegionServer的負(fù)載均衡,調(diào)整Region的分布

在Region Split后奢浑,負(fù)責(zé)新Region的分配

在HRegionServer停機(jī)后蛮艰,負(fù)責(zé)失效HRegionServer上的Regions遷移

  • HRegionServer

當(dāng)用戶需要對(duì)數(shù)據(jù)進(jìn)行讀寫操作時(shí),需要訪問(wèn)HRegionServer殷费。HRegionServer存取一個(gè)子表時(shí)印荔,會(huì)創(chuàng)建一個(gè)HRegion對(duì)象低葫,然后對(duì)表的每個(gè)列族創(chuàng)建一個(gè)Store實(shí)例,每個(gè)Store都會(huì)有一個(gè) MemStore和0個(gè)或多個(gè)StoreFile與之對(duì)應(yīng)仍律,每個(gè)StoreFile都會(huì)對(duì)應(yīng)一個(gè)HFile嘿悬, HFile就是實(shí)際的存儲(chǔ)文件。因此水泉,一個(gè)HRegion有多少個(gè)列族就有多少個(gè)Store善涨。 一個(gè)HRegionServer會(huì)有多個(gè)HRegion和一個(gè)HLog。

  • 注意:HStore存儲(chǔ)由兩部分組成:MemStore和StoreFiles草则。 MemStore是Sorted Memory Buffer,用戶 寫入數(shù)據(jù)首先 會(huì)放在MemStore,當(dāng)MemStore滿了以后會(huì)Flush成一個(gè) StoreFile(實(shí)際存儲(chǔ)在HDHS上的是HFile)钢拧,當(dāng)StoreFile文件數(shù)量增長(zhǎng)到一定閥值,就會(huì)觸發(fā)Compact合并操作炕横,并將多個(gè)StoreFile合并成一個(gè)StoreFile源内,合并過(guò)程中會(huì)進(jìn)行版本合并和數(shù)據(jù)刪除,因此可以看出HBase其實(shí)只有增加數(shù)據(jù)份殿,所有的更新和刪除操作都是在后續(xù)的compact過(guò)程中進(jìn)行的膜钓,這使得用戶的 讀寫操作*只要進(jìn)入內(nèi)存中就可以立即返回,保證了HBase I/O的高性能卿嘲。

五颂斜、HBase的高可用

  • HDFS機(jī)架識(shí)別策略:當(dāng)數(shù)據(jù)文件損壞時(shí),會(huì)找相同機(jī)架上備份的數(shù)據(jù)文件拾枣,如果相同機(jī)架上的數(shù)據(jù)文件也損壞會(huì)找不同機(jī)架備份數(shù)據(jù)文件沃疮。

  • HBase的Region快速恢復(fù):當(dāng)regionserver損壞時(shí),master會(huì)對(duì)該regionserver上的region進(jìn)行重新分配梅肤,遷移到其他可用的regionserver上并恢復(fù)region司蔬。

  • Master節(jié)點(diǎn)的HA機(jī)制:Master為一主多備。當(dāng)Master主節(jié)點(diǎn)宕機(jī)后凭语,剩下的備節(jié)點(diǎn)通過(guò)選舉葱她,產(chǎn)生主節(jié)點(diǎn)。

六似扔、HBase運(yùn)維

  • 時(shí)鐘同步

  • 手動(dòng)majorcompact

  • region hole修復(fù)

  • region overlap修復(fù)

  • 讀寫集群配置要區(qū)分

  • memstore flush時(shí)機(jī)

七、新特性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搓谆,一起剝皮案震驚了整個(gè)濱河市炒辉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泉手,老刑警劉巖黔寇,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異斩萌,居然都是意外死亡缝裤,警方通過(guò)查閱死者的電腦和手機(jī)屏轰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)憋飞,“玉大人霎苗,你說(shuō)我怎么就攤上這事¢蛔觯” “怎么了唁盏?”我有些...
    開(kāi)封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)检眯。 經(jīng)常有香客問(wèn)我厘擂,道長(zhǎng),這世上最難降的妖魔是什么锰瘸? 我笑而不...
    開(kāi)封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任刽严,我火速辦了婚禮,結(jié)果婚禮上避凝,老公的妹妹穿的比我還像新娘舞萄。我一直安慰自己,他們只是感情好恕曲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布鹏氧。 她就那樣靜靜地躺著,像睡著了一般佩谣。 火紅的嫁衣襯著肌膚如雪把还。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天茸俭,我揣著相機(jī)與錄音吊履,去河邊找鬼。 笑死调鬓,一個(gè)胖子當(dāng)著我的面吹牛艇炎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腾窝,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼缀踪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了虹脯?” 一聲冷哼從身側(cè)響起驴娃,我...
    開(kāi)封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎循集,沒(méi)想到半個(gè)月后唇敞,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年疆柔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咒精。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旷档,死狀恐怖模叙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彬犯,我是刑警寧澤向楼,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站谐区,受9級(jí)特大地震影響湖蜕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宋列,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一昭抒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炼杖,春花似錦灭返、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至艇纺,卻和暖如春怎静,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黔衡。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工蚓聘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盟劫。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓夜牡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親侣签。 傳聞我的和親對(duì)象是個(gè)殘疾皇子塘装,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一、HBase簡(jiǎn)介 Hbase是什么HBase是一種構(gòu)建在HDFS之上的分布式影所、面向列氢哮、多版本、非關(guān)系型的數(shù)據(jù)庫(kù)型檀。...
    龍夢(mèng)起飛閱讀 5,007評(píng)論 1 6
  • HBase存儲(chǔ)架構(gòu)圖 HBase Master 為Region server分配region 負(fù)責(zé)Region s...
    kimibob閱讀 5,586評(píng)論 0 52
  • HBase Architectural Components(HBase架構(gòu)組件) HBase架構(gòu)也是主從架構(gòu),由...
    陌上疏影涼閱讀 2,397評(píng)論 0 7
  • Hbase架構(gòu)與原理 HBase是一個(gè)分布式的听盖、面向列的開(kāi)源數(shù)據(jù)庫(kù)胀溺,該技術(shù)來(lái)源于 Fay Chang所撰寫的Goo...
    全能程序猿閱讀 86,296評(píng)論 2 37
  • 1. HBase介紹裂七,Hbase是什么? HBase -- Hadoop Database 仓坞,是一個(gè)高可靠背零、高性能...
    奉先閱讀 3,747評(píng)論 1 36