版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章海量數(shù)據(jù)庫HBase技術(shù)學(xué)習(xí)目標(biāo)
·了解HBase的產(chǎn)生背景
·了解HBase表視圖
·了解
HBase的物理存儲(chǔ)模型
·了解HBase相關(guān)操作
·HBase應(yīng)用案例
1.初識(shí)HBaseHbase是一個(gè)類似Bigtable的分布式結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng),Bigtable是GoogleStyle的數(shù)據(jù)庫,使用結(jié)構(gòu)化的文件來存儲(chǔ)數(shù)據(jù)。1.初識(shí)HBase定義:BT是一個(gè)稀疏的,長(zhǎng)期存儲(chǔ)的,多維度的,排序的映射表。索引:行關(guān)鍵字,列關(guān)鍵字和時(shí)間戳.值:一個(gè)不解釋的字符數(shù)組.?dāng)?shù)據(jù)都是字符串,沒類型,格式由客戶來解釋(row:string,column:string,time:int64)->string2.HBase表視圖HBase表視圖分為概念視圖和物理視圖,在概念視圖上是由稀疏的行組成的集合,很多行都沒有完整的列族,但是在物理存儲(chǔ)中是以列族為單元進(jìn)行存儲(chǔ)的,一行數(shù)據(jù)被分散在多個(gè)物理存儲(chǔ)單元中,空單元全部丟棄。2.HBase表視圖行名是一個(gè)反向URL{即n.www}。contents列族存放網(wǎng)頁內(nèi)容anchor列族存放引用該網(wǎng)頁的錨鏈接文本。CNN的主頁被SportsIllustrater和MY-look的主頁引用,因此該行包含了名叫“anchor:”和“anchhor:my.look.ca”的列。列名字的格式是"<family>:<label>"時(shí)間戳每個(gè)錨鏈接只有一個(gè)版本,由時(shí)間戳標(biāo)識(shí),如t9,t8;而contents列則有三個(gè)版本,分別由時(shí)間戳t3,t5,和t6標(biāo)識(shí)。一個(gè)存儲(chǔ)Web網(wǎng)頁的例子的表的片斷2.HBase表視圖概念視圖2.HBase表視圖行行關(guān)鍵字可以是任意字符串,每一行都有一個(gè)可排序的主鍵和任意多的列。表用行鍵即主鍵排序,通過主鍵訪問表。在一個(gè)行關(guān)鍵字下的每一個(gè)讀寫操作都是原子操作有利于同行并發(fā)操作舉例,在Webtable里,通過反轉(zhuǎn)URL中主機(jī)名的方式,可以把同一個(gè)域名下的網(wǎng)頁組織成連續(xù)行。2.HBase表視圖列族每行列分組形成列族:“<family>:<qualifiers>”每張表有一個(gè)family集合,固定不變,相當(dāng)于表結(jié)構(gòu)列族成員有相同前綴。OK:a與OK:b都屬于OK列族成員同一列族下存放的所有數(shù)據(jù)通常都是同一類型列族必須先創(chuàng)建,然后能在其中的列關(guān)鍵字下存放數(shù)據(jù),動(dòng)態(tài)增加列限定詞任意字符串。比如,Webtable列族是anchor;給列族的每一個(gè)列關(guān)鍵字代表一個(gè)錨鏈接物理存儲(chǔ)列族成員在文件系統(tǒng)存在一起,(確切)面向列族。這是訪問控制的基本單位。2.HBase表視圖時(shí)間戳表中每一個(gè)表項(xiàng)都可以包含同一數(shù)據(jù)的多個(gè)版本不同版本的表項(xiàng)內(nèi)容按時(shí)間戳倒序排列,即最新的排在前面。自動(dòng)進(jìn)行垃圾清除。用戶可以指明只保留表項(xiàng)的最后n個(gè)版本在Webtable中,在contents:列中存放確切爬行一個(gè)網(wǎng)頁的時(shí)間戳。如上的垃圾清除機(jī)制可以讓我們只保留每個(gè)網(wǎng)頁的最近三個(gè)版本。2.HBase表視圖
物理視圖在物理存儲(chǔ)上面,它是按照列來保存的,在概念視圖上面有些列是空白的,這樣的列實(shí)際上并不會(huì)被存儲(chǔ)如果在查詢的時(shí)候不提供時(shí)間戳,返回最新版本2.HBase表視圖表橫向分不同區(qū)域,各區(qū)域代表所有行一個(gè)子集區(qū)域確定:第一行(包含)最后行(不含)+隨機(jī)標(biāo)識(shí)表初始單個(gè)區(qū)域->逐漸擴(kuò)大超過閾值->以行為界分割區(qū)域分散在HBase集群上單元Bigtable通過行關(guān)鍵字的字典序來維護(hù)數(shù)據(jù)。動(dòng)態(tài)劃分成多個(gè)連續(xù)行叫做“子表”(tablet)是數(shù)據(jù)分布和負(fù)載均衡的單位。這樣一來,讀較少的連續(xù)行就比較有效率2.HBase表視圖2.HBase表視圖在記錄寫入Store的MemStore之前,必須先由RegionServer寫入到WAL(HLog)中2.HBase表視圖HLog文件存儲(chǔ)結(jié)構(gòu)2.HBase表視圖HFile文件存儲(chǔ)結(jié)構(gòu)KeyValue內(nèi)部結(jié)構(gòu)3.HBase物理存儲(chǔ)模型3.HBase物理存儲(chǔ)模型架構(gòu)與實(shí)現(xiàn)Hbase由主節(jié)點(diǎn)master多個(gè)區(qū)域服務(wù)器regionserver從結(jié)點(diǎn)Master分配區(qū)域給已注冊(cè)的區(qū)域服務(wù)器Regionserver負(fù)責(zé)0到多個(gè)區(qū)域,響應(yīng)客戶端讀寫請(qǐng)求通知master分裂成子區(qū)域信息3.HBase物理存儲(chǔ)模型1.Client客戶端(Client)用于提交管理或讀寫請(qǐng)求,采用RPC與HMaster和HRegionServer進(jìn)行通信。2.ZooKeeperZooKeeper為HBase提供協(xié)同管理服務(wù),當(dāng)HRegionServer上線時(shí)會(huì)把自己注冊(cè)到ZooKeeper中,以使ZooKeeper能實(shí)時(shí)監(jiān)控HRegionServer的健康狀態(tài),當(dāng)發(fā)現(xiàn)某一個(gè)HRegionServer死掉時(shí),能及時(shí)通知HMaster進(jìn)行相應(yīng)處理。3.HMasterHMaster是主服務(wù)(HBaseMasterServer)的實(shí)例,在Hadoop集群中,一般設(shè)置運(yùn)行于NameNode,它負(fù)責(zé)監(jiān)控集群中所有的HRegionServer,并對(duì)所有表和Region進(jìn)行管理操作。3.HBase物理存儲(chǔ)模型4.HRegionServerHRegionServer是RegionServer的實(shí)例,它負(fù)責(zé)服務(wù)和管理多個(gè)HRegion實(shí)例,并直接響應(yīng)用戶的讀寫請(qǐng)求,HRegionServer運(yùn)行于Hadoop集群的數(shù)據(jù)節(jié)點(diǎn)中,一般來說,一個(gè)數(shù)據(jù)節(jié)點(diǎn)運(yùn)行一個(gè)HRegionServer。HRegionServer是HBase的最核心模塊,有很多后臺(tái)線程,很多相關(guān)操作都需要相應(yīng)線程進(jìn)行處理,如監(jiān)控各Region的大小并進(jìn)行切片,對(duì)StoreFile進(jìn)行壓縮合并操作,監(jiān)控MemStore并進(jìn)行Flush操作,把所有修改寫入WAL等。5.HRegionHRegion是對(duì)表進(jìn)行劃分的基本單元,一個(gè)表在剛創(chuàng)建時(shí)只有一個(gè)Region,但隨著記錄的增加,表會(huì)越來越大,HRegionServer會(huì)實(shí)時(shí)跟蹤Region的大小,當(dāng)Region增大到某個(gè)閾值(由hbase.hregion.max.filesize確定)時(shí),就會(huì)進(jìn)行切片操作,由一個(gè)Region分裂成兩個(gè)Region,隨著表的繼續(xù)增大,還會(huì)分裂成更多的Region。3.HBase物理存儲(chǔ)模型6.HRegionServerHRegionServer是RegionServer的實(shí)例,它負(fù)責(zé)服務(wù)和管理多個(gè)HRegion實(shí)例,并直接響應(yīng)用戶的讀寫請(qǐng)求,HRegionServer運(yùn)行于Hadoop集群的數(shù)據(jù)節(jié)點(diǎn)中,一般來說,一個(gè)數(shù)據(jù)節(jié)點(diǎn)運(yùn)行一個(gè)HRegionServer。HRegionServer是HBase的最核心模塊,有很多后臺(tái)線程,很多相關(guān)操作都需要相應(yīng)線程進(jìn)行處理,如監(jiān)控各Region的大小并進(jìn)行切片,對(duì)StoreFile進(jìn)行壓縮合并操作,監(jiān)控MemStore并進(jìn)行Flush操作,把所有修改寫入WAL等。5.HRegionHRegion是對(duì)表進(jìn)行劃分的基本單元,一個(gè)表在剛創(chuàng)建時(shí)只有一個(gè)Region,但隨著記錄的增加,表會(huì)越來越大,HRegionServer會(huì)實(shí)時(shí)跟蹤Region的大小,當(dāng)Region增大到某個(gè)閾值(由hbase.hregion.max.filesize確定)時(shí),就會(huì)進(jìn)行切片操作,由一個(gè)Region分裂成兩個(gè)Region,隨著表的繼續(xù)增大,還會(huì)分裂成更多的Region。4.Hbase相關(guān)操作BT的API提供了建立和刪除表和列族的函數(shù).還提供了函數(shù)來修改集群,表和列族的元數(shù)據(jù),比如說訪問權(quán)限
4.Hbase相關(guān)操作
Hbase
API:寫入Bigtable./OpenthetableTable*T=OpenOrDie(”/bigtable/web/webtable”);//WriteanewanchoranddeleteanoldanchorRowMutationr1(T,“n.www”);r1.Set(”anchor:”,“CNN”);r1.Delete(”anchor:”);Operationop;Apply(&op,&r1);4.Hbase相關(guān)操作在BT中,客戶應(yīng)用可以寫或者刪除值,從每個(gè)行中找值,或者遍歷一個(gè)表中的數(shù)據(jù)子集.圖2的C++代碼是使用RowMutation抽象表示來進(jìn)行一系列的更新(為保證代碼精簡(jiǎn),沒有包括無關(guān)的細(xì)節(jié)).調(diào)用Apply函數(shù),就對(duì)Webtable進(jìn)行了一個(gè)原子修改:它為/增加了一個(gè)錨點(diǎn),并刪除了另外一個(gè)錨點(diǎn).
4.Hbase相關(guān)操作
Hbase
API:讀Bigtable.Scannerscanner(T);ScanStream*stream;stream=scanner.FetchColumnFamily(”anchor”);stream->SetReturnAllVersions();scanner.Lookup(”n.www”);for(;!stream->Done();stream->Next()){printf(”%s%s%lld%s\n”,scanner.RowName(),stream->ColumnName(),stream->MicroTimestamp(),stream->Value());4.Hbase相關(guān)操作
C++代碼是使用Scanner抽象來遍歷一個(gè)行內(nèi)的所有錨點(diǎn).客戶可以遍歷多個(gè)列族.有很多方法可以限制一次掃描中產(chǎn)生的行,列和時(shí)間戳.例如,我們可以限制上面的掃描,讓它只找到那些匹配正則表達(dá)式*.的錨點(diǎn),或者那些時(shí)間戳在當(dāng)前時(shí)間前10天的錨點(diǎn).5.Hbase應(yīng)用案例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 監(jiān)控工程合同范本
- 2025年度煤炭運(yùn)輸合同碳排放權(quán)交易協(xié)議書4篇
- 2025年度林業(yè)生態(tài)旅游項(xiàng)目投資合同4篇
- 二零二五年度媒體廣告代理服務(wù)合同4篇
- 二零二五年度新能源車充電樁建設(shè)項(xiàng)目合同執(zhí)行與推廣3篇
- 2025-2030年中國(guó)香油(芝麻油)行業(yè)現(xiàn)狀分析及投資建議研究報(bào)告
- 2025-2030年中國(guó)靜力水準(zhǔn)行業(yè)運(yùn)行狀況與前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)隔斷產(chǎn)業(yè)市場(chǎng)需求狀況規(guī)劃分析報(bào)告
- 2025-2030年中國(guó)蜂蜜行業(yè)運(yùn)營(yíng)狀況與發(fā)展?jié)摿Ψ治鰣?bào)告新版
- 2025-2030年中國(guó)花畫工藝品市場(chǎng)運(yùn)行動(dòng)態(tài)分析及投資前景預(yù)測(cè)報(bào)告
- 電工(中級(jí)工)理論知識(shí)練習(xí)題(附參考答案)
- 工業(yè)設(shè)計(jì)概論試題
- 2024-2030年中國(guó)商務(wù)服務(wù)行業(yè)市場(chǎng)現(xiàn)狀調(diào)查及投資前景研判報(bào)告
- 起重機(jī)的維護(hù)保養(yǎng)要求與月度、年度檢查記錄表
- 消防設(shè)施維護(hù)保養(yǎng)記錄表
- 城區(qū)生活垃圾填埋場(chǎng)封場(chǎng)項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 垃圾分類巡檢督導(dǎo)方案
- 大一護(hù)理生涯發(fā)展展示
- 五年級(jí)上冊(cè)數(shù)學(xué)應(yīng)用題100題及答案
- 新生兒急救與復(fù)蘇培訓(xùn)
- 外貿(mào)跟單員工作總結(jié)PPT
評(píng)論
0/150
提交評(píng)論