Hadoop大數(shù)據(jù)處理技術(shù)基礎(chǔ)與實(shí)踐(第3版)課件 第7章-海量數(shù)據(jù)庫HBase技術(shù) 含思政文化_第1頁
Hadoop大數(shù)據(jù)處理技術(shù)基礎(chǔ)與實(shí)踐(第3版)課件 第7章-海量數(shù)據(jù)庫HBase技術(shù) 含思政文化_第2頁
Hadoop大數(shù)據(jù)處理技術(shù)基礎(chǔ)與實(shí)踐(第3版)課件 第7章-海量數(shù)據(jù)庫HBase技術(shù) 含思政文化_第3頁
Hadoop大數(shù)據(jù)處理技術(shù)基礎(chǔ)與實(shí)踐(第3版)課件 第7章-海量數(shù)據(jù)庫HBase技術(shù) 含思政文化_第4頁
Hadoop大數(shù)據(jù)處理技術(shù)基礎(chǔ)與實(shí)踐(第3版)課件 第7章-海量數(shù)據(jù)庫HBase技術(shù) 含思政文化_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論