云計(jì)算系列教程-文檔資料_第1頁
云計(jì)算系列教程-文檔資料_第2頁
云計(jì)算系列教程-文檔資料_第3頁
云計(jì)算系列教程-文檔資料_第4頁
云計(jì)算系列教程-文檔資料_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1HBASE 2內(nèi)容提要內(nèi)容提要為什么需要為什么需要HBaseHBaseHTableHTable的邏輯組織的邏輯組織HBaseHBase的運(yùn)行機(jī)制的運(yùn)行機(jī)制HBaseHBase與與 HDFSHDFSHBaseHBase的對(duì)外接口的對(duì)外接口3引入引入HBASE的原因的原因數(shù)據(jù)庫系統(tǒng)已無法適應(yīng)大型分布式數(shù)據(jù)存數(shù)據(jù)庫系統(tǒng)已無法適應(yīng)大型分布式數(shù)據(jù)存儲(chǔ)的需要儲(chǔ)的需要改良的關(guān)系數(shù)據(jù)庫(副本、分區(qū)等)難于改良的關(guān)系數(shù)據(jù)庫(副本、分區(qū)等)難于安裝與維護(hù)安裝與維護(hù)關(guān)系模型對(duì)數(shù)據(jù)的操作使數(shù)據(jù)的存貯變得關(guān)系模型對(duì)數(shù)據(jù)的操作使數(shù)據(jù)的存貯變得復(fù)雜復(fù)雜4引入引入HBASE的原因的原因HBASEHBASE從設(shè)計(jì)理念上就為可

2、擴(kuò)展做好了充從設(shè)計(jì)理念上就為可擴(kuò)展做好了充分準(zhǔn)備分準(zhǔn)備空間的擴(kuò)展只需要加入存儲(chǔ)結(jié)點(diǎn)空間的擴(kuò)展只需要加入存儲(chǔ)結(jié)點(diǎn)使用使用表表的概念,但不同于關(guān)系數(shù)據(jù)庫,的概念,但不同于關(guān)系數(shù)據(jù)庫,不支持不支持SQLSQL實(shí)質(zhì)上是一張極大的、非常稀疏的,存儲(chǔ)實(shí)質(zhì)上是一張極大的、非常稀疏的,存儲(chǔ)在分布式文件系統(tǒng)上的表在分布式文件系統(tǒng)上的表5HBaseHBase歷史歷史20062006年底由年底由PowerSet PowerSet 的的Chad WaltersChad Walters和和Jim Jim Kellerman Kellerman 發(fā)起發(fā)起20082008年成為年成為Apache HadoopApache

3、Hadoop的一個(gè)子項(xiàng)目的一個(gè)子項(xiàng)目現(xiàn)已作為產(chǎn)品被使用現(xiàn)已作為產(chǎn)品被使用WorldLingoWorldLingoSSOpenPlacesOpenPlacesYahooYahooAdobeAdobe6HBASEHBASE用例用例WebTableWebTable存儲(chǔ)抓取網(wǎng)頁和相關(guān)信息存儲(chǔ)抓取網(wǎng)頁和相關(guān)信息每個(gè)頁面對(duì)應(yīng)一行,是個(gè)有百萬行的大表每個(gè)頁面對(duì)應(yīng)一行,是個(gè)有百萬行的大表要基于此表進(jìn)行分析與解析并由搜索引擎要基于此表進(jìn)行分析與解析并由搜索引擎對(duì)關(guān)鍵字進(jìn)行索引對(duì)關(guān)鍵字進(jìn)行索引表需要并發(fā)地被眾多網(wǎng)頁抓取程序隨機(jī)地表需要并發(fā)地被眾多網(wǎng)頁抓取程序隨機(jī)地訪問以及更新數(shù)據(jù)訪問以及更新數(shù)據(jù)表內(nèi)容也要作為網(wǎng)頁

4、實(shí)時(shí)緩存被大量用戶表內(nèi)容也要作為網(wǎng)頁實(shí)時(shí)緩存被大量用戶隨機(jī)訪問隨機(jī)訪問7邏輯視圖邏輯視圖Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “8數(shù)據(jù)模型行數(shù)據(jù)模型行Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “行鍵列列9數(shù)據(jù)模型行數(shù)據(jù)模

5、型行每行數(shù)據(jù)有一可排序的關(guān)鍵字和任意列項(xiàng)每行數(shù)據(jù)有一可排序的關(guān)鍵字和任意列項(xiàng)字符串、整數(shù)、二進(jìn)制串甚至與串行化的字符串、整數(shù)、二進(jìn)制串甚至與串行化的結(jié)構(gòu)都可以作為行鍵結(jié)構(gòu)都可以作為行鍵表按照行鍵的表按照行鍵的“逐字節(jié)排序逐字節(jié)排序”順序?qū)π羞M(jìn)順序?qū)π羞M(jìn)行有序化處理行有序化處理表內(nèi)數(shù)據(jù)非常表內(nèi)數(shù)據(jù)非常稀疏稀疏,不同的行的列的,不同的行的列的數(shù)完全目可以大不相同數(shù)完全目可以大不相同10數(shù)據(jù)模型行數(shù)據(jù)模型行可以只對(duì)一行上可以只對(duì)一行上“鎖鎖”對(duì)行的寫操作是始終是對(duì)行的寫操作是始終是“原子原子”的的11數(shù)據(jù)模型列數(shù)據(jù)模型列列必須用列必須用族族(family)(family)來定義來定義任意一列有如下形

6、式任意一列有如下形式“族:標(biāo)簽族:標(biāo)簽”其中,族和標(biāo)簽都可為任意形式的串其中,族和標(biāo)簽都可為任意形式的串物理上將同物理上將同“族族”數(shù)據(jù)存儲(chǔ)在一起數(shù)據(jù)存儲(chǔ)在一起數(shù)據(jù)可通過時(shí)間戳區(qū)分版本數(shù)據(jù)可通過時(shí)間戳區(qū)分版本12數(shù)據(jù)模型列數(shù)據(jù)模型列Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “族標(biāo)簽13物理視圖物理視圖Row KeyTime StampColumn: ContentsCn.wwwT6“.”T5“.”T3“.”R

7、ow KeyTime StampColumn: AnchorCn.wwwT9Anchor:CNNT5Anchor:my.look.caCNN.COMRow KeyTime StampColumn: mimeCn.wwwT6text/html14HTableHTable小結(jié)小結(jié)Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “15系統(tǒng)總體結(jié)構(gòu)系統(tǒng)總體結(jié)構(gòu)HDFSClusterZoo KeeperClusterRegi

8、onServerRegionServerRegionServerMasterServerHStoreMap FilesHStoreMap FilesRegion16數(shù)據(jù)存儲(chǔ)實(shí)體區(qū)域數(shù)據(jù)存儲(chǔ)實(shí)體區(qū)域表按照表按照“水平水平”的方式劃分成一個(gè)或多個(gè)的方式劃分成一個(gè)或多個(gè)“區(qū)域區(qū)域”(region)(region)每個(gè)區(qū)域都包含一個(gè)隨機(jī)每個(gè)區(qū)域都包含一個(gè)隨機(jī)id id,區(qū)域內(nèi)的行也,區(qū)域內(nèi)的行也是按行鍵有序的是按行鍵有序的最初每張表包含一個(gè)區(qū)域,當(dāng)表增大超過最初每張表包含一個(gè)區(qū)域,當(dāng)表增大超過閾值后,這個(gè)區(qū)域被自動(dòng)分割成兩個(gè)相同閾值后,這個(gè)區(qū)域被自動(dòng)分割成兩個(gè)相同大小的區(qū)域大小的區(qū)域區(qū)域以分布式的方式

9、分布在集群內(nèi)區(qū)域以分布式的方式分布在集群內(nèi)17區(qū)域的管理區(qū)域的管理區(qū)域服務(wù)器區(qū)域服務(wù)器(Region Server)(Region Server)為區(qū)域的訪問提供服務(wù),直接為用戶提供服務(wù)為區(qū)域的訪問提供服務(wù),直接為用戶提供服務(wù)負(fù)責(zé)維護(hù)區(qū)域的分割負(fù)責(zé)維護(hù)區(qū)域的分割負(fù)責(zé)數(shù)據(jù)存持久化負(fù)責(zé)數(shù)據(jù)存持久化主服務(wù)器主服務(wù)器(Master Server)(Master Server)管理區(qū)域服務(wù)器管理區(qū)域服務(wù)器指派區(qū)域服務(wù)器對(duì)服務(wù)特定區(qū)域指派區(qū)域服務(wù)器對(duì)服務(wù)特定區(qū)域恢復(fù)失效的區(qū)域服務(wù)器恢復(fù)失效的區(qū)域服務(wù)器18特殊目錄數(shù)據(jù)特殊目錄數(shù)據(jù)元數(shù)據(jù)元數(shù)據(jù)(META)(META)全部用戶區(qū)域的屬性數(shù)據(jù)都存在元數(shù)據(jù)表中全部

10、用戶區(qū)域的屬性數(shù)據(jù)都存在元數(shù)據(jù)表中包括區(qū)域中數(shù)據(jù)起止行信息、區(qū)域包括區(qū)域中數(shù)據(jù)起止行信息、區(qū)域“在線在線”狀狀態(tài)等態(tài)等保存區(qū)域服務(wù)器地址保存區(qū)域服務(wù)器地址元數(shù)據(jù)表也可包含多個(gè)區(qū)域,區(qū)域?qū)傩詳?shù)據(jù)存元數(shù)據(jù)表也可包含多個(gè)區(qū)域,區(qū)域?qū)傩詳?shù)據(jù)存儲(chǔ)在儲(chǔ)在“根根”結(jié)點(diǎn)上結(jié)點(diǎn)上19特殊目錄數(shù)據(jù)特殊目錄數(shù)據(jù)“根根”表表(ROOT)(ROOT)只存包含一個(gè)區(qū)域只存包含一個(gè)區(qū)域?qū)⒃獢?shù)據(jù)中的區(qū)域映射到區(qū)域服務(wù)器將元數(shù)據(jù)中的區(qū)域映射到區(qū)域服務(wù)器存儲(chǔ)元數(shù)據(jù)服務(wù)器位置以及映射了哪些元數(shù)據(jù)存儲(chǔ)元數(shù)據(jù)服務(wù)器位置以及映射了哪些元數(shù)據(jù)區(qū)域區(qū)域20區(qū)域服務(wù)器區(qū)域服務(wù)器(Region Server)(Region Server)職職能

11、能負(fù)責(zé)處理用戶的讀寫請(qǐng)求負(fù)責(zé)處理用戶的讀寫請(qǐng)求向主服務(wù)器向主服務(wù)器(Master Server)(Master Server)上報(bào)自己的狀態(tài),上報(bào)自己的狀態(tài),并獲取自己需要服務(wù)的區(qū)域并獲取自己需要服務(wù)的區(qū)域?yàn)樘岣咝?,消息通過捎帶為提高效率,消息通過捎帶(pigback)(pigback)方式通方式通過過“心跳心跳”分組進(jìn)行傳遞分組進(jìn)行傳遞21區(qū)域服務(wù)器區(qū)域服務(wù)器“寫寫”寫數(shù)據(jù)首先寫入寫數(shù)據(jù)首先寫入“預(yù)寫預(yù)寫”日志日志對(duì)于一個(gè)區(qū)域服務(wù)器而言,對(duì)其提供服務(wù)對(duì)于一個(gè)區(qū)域服務(wù)器而言,對(duì)其提供服務(wù)的所有區(qū)域的的所有區(qū)域的“寫寫”操作日志都存儲(chǔ)在同操作日志都存儲(chǔ)在同一個(gè)日志中一個(gè)日志中數(shù)據(jù)并非直接寫文件

12、系統(tǒng),而是先緩存,數(shù)據(jù)并非直接寫文件系統(tǒng),而是先緩存,緩存到一定數(shù)量再批量寫入緩存到一定數(shù)量再批量寫入寫入完成后在日志中做標(biāo)記寫入完成后在日志中做標(biāo)記22區(qū)域服務(wù)器區(qū)域服務(wù)器“讀讀”區(qū)域服務(wù)器現(xiàn)在內(nèi)存的緩存中查找,如果區(qū)域服務(wù)器現(xiàn)在內(nèi)存的緩存中查找,如果命中請(qǐng)求,則直接服務(wù)命中請(qǐng)求,則直接服務(wù)如果存在多個(gè)版本,則返回順序按照從最如果存在多個(gè)版本,則返回順序按照從最新到最老新到最老23區(qū)域服務(wù)器合并區(qū)域服務(wù)器合并如果映射文件如果映射文件(Map File)(Map File)數(shù)量超過閾值,區(qū)數(shù)量超過閾值,區(qū)域服務(wù)器會(huì)進(jìn)行一次合并域服務(wù)器會(huì)進(jìn)行一次合并(Compaction)(Compaction

13、)合并操作也周期性進(jìn)行合并操作也周期性進(jìn)行合并可與區(qū)域服務(wù)器響應(yīng)用戶的讀寫請(qǐng)求合并可與區(qū)域服務(wù)器響應(yīng)用戶的讀寫請(qǐng)求并發(fā)進(jìn)行并發(fā)進(jìn)行如果讀寫請(qǐng)求與合并區(qū)域相關(guān),讀寫操作如果讀寫請(qǐng)求與合并區(qū)域相關(guān),讀寫操作先掛起,直到合并操作完成先掛起,直到合并操作完成24區(qū)域服務(wù)器分割區(qū)域服務(wù)器分割當(dāng)區(qū)域文件大過閾值后,區(qū)域文件會(huì)按照當(dāng)區(qū)域文件大過閾值后,區(qū)域文件會(huì)按照行的方式對(duì)半進(jìn)行分割行的方式對(duì)半進(jìn)行分割(Split)(Split)操作操作分割也作為一種請(qǐng)求被區(qū)域服務(wù)器處理分割也作為一種請(qǐng)求被區(qū)域服務(wù)器處理被分割區(qū)域先離線被分割區(qū)域先離線區(qū)域服務(wù)器在元信息表中生成子表元信息區(qū)域服務(wù)器在元信息表中生成子表元信

14、息主服務(wù)器在得知分割操作進(jìn)行后,將子表主服務(wù)器在得知分割操作進(jìn)行后,將子表分配給新的區(qū)域服務(wù)器進(jìn)行服務(wù)分配給新的區(qū)域服務(wù)器進(jìn)行服務(wù)被分割區(qū)域通過垃圾回收機(jī)制回收被分割區(qū)域通過垃圾回收機(jī)制回收25區(qū)域服務(wù)器分割區(qū)域服務(wù)器分割如果主服務(wù)器沒能正確收到分割消息,主如果主服務(wù)器沒能正確收到分割消息,主服務(wù)器可通過定期檢查服務(wù)器可通過定期檢查MATAMATA數(shù)據(jù)發(fā)現(xiàn)分割數(shù)據(jù)發(fā)現(xiàn)分割操作操作開始分割操作后,被分割區(qū)域離線,此時(shí)開始分割操作后,被分割區(qū)域離線,此時(shí)客戶端能檢測到并在分割后的區(qū)域上線后客戶端能檢測到并在分割后的區(qū)域上線后重發(fā)訪問請(qǐng)求重發(fā)訪問請(qǐng)求26失效恢復(fù)失效恢復(fù)由于檢測沒有心跳,主服務(wù)器能夠

15、探知區(qū)由于檢測沒有心跳,主服務(wù)器能夠探知區(qū)域服務(wù)器的失效域服務(wù)器的失效主服務(wù)器將失效服務(wù)器所提供服務(wù)的區(qū)域主服務(wù)器將失效服務(wù)器所提供服務(wù)的區(qū)域重新分配給其它區(qū)域服務(wù)器重新分配給其它區(qū)域服務(wù)器原失效區(qū)域服務(wù)器的原失效區(qū)域服務(wù)器的“預(yù)寫預(yù)寫”日志由主服日志由主服務(wù)器進(jìn)行分割并派送給新的區(qū)域服務(wù)器務(wù)器進(jìn)行分割并派送給新的區(qū)域服務(wù)器27客戶端客戶端連接到連接到ZooKeeperZooKeeper集群獲取根區(qū)域數(shù)據(jù)和元集群獲取根區(qū)域數(shù)據(jù)和元數(shù)據(jù)的位置數(shù)據(jù)的位置在元數(shù)據(jù)中查找需要訪問行所在的區(qū)域并在元數(shù)據(jù)中查找需要訪問行所在的區(qū)域并定位提供該區(qū)域服務(wù)的區(qū)域服務(wù)器定位提供該區(qū)域服務(wù)的區(qū)域服務(wù)器直接與區(qū)域服務(wù)

16、器交互以獲取數(shù)據(jù)直接與區(qū)域服務(wù)器交互以獲取數(shù)據(jù)根區(qū)域數(shù)據(jù)、元數(shù)據(jù)以及用戶區(qū)域信息都根區(qū)域數(shù)據(jù)、元數(shù)據(jù)以及用戶區(qū)域信息都被客戶端緩存以備下次訪問使用被客戶端緩存以備下次訪問使用28系統(tǒng)總體結(jié)構(gòu)系統(tǒng)總體結(jié)構(gòu)HDFSClusterZoo KeeperClusterRegionServerRegionServerRegionServerMasterServerHStoreMap FilesHStoreMap FilesRegion29HBaseHBase安裝安裝需要需要ZooKeeperZooKeeper支持支持本身帶本身帶zookeeper.jarzookeeper.jar包包步驟步驟解壓,并添加支

17、撐的解壓,并添加支撐的.jar.jar包到用戶包到用戶CLASS_PATHCLASS_PATH修改修改confconf下下hbase-env.sh, regionservershbase-env.sh, regionserversHbase-site.xmlHbase-site.xml啟動(dòng)啟動(dòng)Hbase: bin/start-hbase.shHbase: bin/start-hbase.sh30HBase ShellHBase Shell啟動(dòng)啟動(dòng)bin/hbase shellbin/hbase shell主要命令主要命令create create 創(chuàng)建表創(chuàng)建表describe describe

18、 描述表描述表enable/disable enable/disable 表激活表激活/ /取消取消drop drop 刪除表刪除表get/put get/put 表讀寫表讀寫31HBase APIHBase APIHBaseConfigurationHBaseConfigurationaddResource()addResource()HTableHTableput()put()get()get()ResultScannerResultScannernext()next()32HBaseHBase與與HDFSHDFS如果使用如果使用HDFSHDFS需要配置需要配置RegionServerRegionServer,

溫馨提示

  • 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)論