最新云計(jì)算系列教程9_第1頁
最新云計(jì)算系列教程9_第2頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、云計(jì)算系列教程9 HBASE 云計(jì)算系列教程9 內(nèi)容提要內(nèi)容提要 為什么需要為什么需要HBaseHBase HTableHTable的邏輯組織的邏輯組織 HBaseHBase的運(yùn)行機(jī)制的運(yùn)行機(jī)制 HBaseHBase與與 HDFSHDFS HBaseHBase的對外接口的對外接口 云計(jì)算系列教程9 引入引入HBASE的原因的原因 數(shù)據(jù)庫系統(tǒng)已無法適應(yīng)大型分布式數(shù)據(jù)存數(shù)據(jù)庫系統(tǒng)已無法適應(yīng)大型分布式數(shù)據(jù)存 儲的需要儲的需要 改良的關(guān)系數(shù)據(jù)庫(副本、分區(qū)等)難于改良的關(guān)系數(shù)據(jù)庫(副本、分區(qū)等)難于 安裝與維護(hù)安裝與維護(hù) 關(guān)系模型對數(shù)據(jù)的操作使數(shù)據(jù)的存貯變得關(guān)系模型對數(shù)據(jù)的操作使數(shù)據(jù)的存貯變得 復(fù)雜復(fù)

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

3、Jim Kellerman Kellerman 發(fā)起發(fā)起 20082008年成為年成為Apache HadoopApache Hadoop的一個(gè)子項(xiàng)目的一個(gè)子項(xiàng)目 現(xiàn)已作為產(chǎn)品被使用現(xiàn)已作為產(chǎn)品被使用 WorldLingoWorldLingo SS OpenPlacesOpenPlaces YahooYahoo AdobeAdobe 云計(jì)算系列教程9 HBASEHBASE用例用例WebTableWebTable 存儲抓取網(wǎng)頁和相關(guān)信息存儲抓取網(wǎng)頁和相關(guān)信息 每個(gè)頁面對應(yīng)一行,是個(gè)有百萬行的大表每個(gè)頁面對應(yīng)一行,是個(gè)有百萬行的大表 要基于此表進(jìn)行分析與解析并由搜索引擎要基于此表進(jìn)行分析與解析并由

4、搜索引擎 對關(guān)鍵字進(jìn)行索引對關(guān)鍵字進(jìn)行索引 表需要并發(fā)地被眾多網(wǎng)頁抓取程序隨機(jī)地表需要并發(fā)地被眾多網(wǎng)頁抓取程序隨機(jī)地 訪問以及更新數(shù)據(jù)訪問以及更新數(shù)據(jù) 表內(nèi)容也要作為網(wǎng)頁實(shí)時(shí)緩存被大量用戶表內(nèi)容也要作為網(wǎng)頁實(shí)時(shí)緩存被大量用戶 隨機(jī)訪問隨機(jī)訪問 云計(jì)算系列教程9 邏輯視圖邏輯視圖 Row KeyTime Stamp Column Contents Column AnchorColumn “mime” my.look.ca “n.w ww” T9CNN T8CNN.COM T6“. “Text/html T5“. “ t3“. “ 云計(jì)算系列教程9 數(shù)據(jù)模型行數(shù)據(jù)模型行 Row KeyTime S

5、tamp Column Contents Column AnchorColumn “mime” my.look.ca “n.w ww” T9CNN T8CNN.COM T6“. “Text/html T5“. “ t3“. “ 行鍵 列列 云計(jì)算系列教程9 數(shù)據(jù)模型行數(shù)據(jù)模型行 每行數(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ù)非常稀疏稀疏,不同

6、的行的列的,不同的行的列的 數(shù)完全目可以大不相同數(shù)完全目可以大不相同 云計(jì)算系列教程9 數(shù)據(jù)模型行數(shù)據(jù)模型行 可以只對一行上可以只對一行上“鎖鎖” 對行的寫操作是始終是對行的寫操作是始終是“原子原子”的的 云計(jì)算系列教程9 數(shù)據(jù)模型列數(shù)據(jù)模型列 列必須用列必須用族族(family)(family)來定義來定義 任意一列有如下形式任意一列有如下形式 “族:標(biāo)簽族:標(biāo)簽” 其中,族和標(biāo)簽都可為任意形式的串其中,族和標(biāo)簽都可為任意形式的串 物理上將同物理上將同“族族”數(shù)據(jù)存儲在一起數(shù)據(jù)存儲在一起 數(shù)據(jù)可通過時(shí)間戳區(qū)分版本數(shù)據(jù)可通過時(shí)間戳區(qū)分版本 云計(jì)算系列教程9 數(shù)據(jù)模型列數(shù)據(jù)模型列 Row Key

7、Time Stamp Column Contents Column AnchorColumn “mime” my.look.ca “n.w ww” T9CNN T8CNN.COM T6“. “Text/html T5“. “ t3“. “ 族 標(biāo)簽 云計(jì)算系列教程9 物理視圖物理視圖 Row KeyTime StampColumn: Contents Cn.wwwT6“.” T5“.” T3“.” Row KeyTime StampColumn: Anchor Cn.wwwT9Anchor:CNN T5Anchor:my.look.caCNN.COM Row KeyTime StampColu

8、mn: mime Cn.wwwT6text/html 云計(jì)算系列教程9 HTableHTable小結(jié)小結(jié) Row KeyTime Stamp Column Contents Column AnchorColumn “mime” my.look.ca “n.w ww” T9CNN T8CNN.COM T6“. “Text/html T5“. “ t3“. “ 云計(jì)算系列教程9 系統(tǒng)總體結(jié)構(gòu)系統(tǒng)總體結(jié)構(gòu) HDFS Cluster Zoo Keeper Cluster Region Server Region Server Region Server Master Server HStore Map

9、 Files HStore Map Files Region 云計(jì)算系列教程9 數(shù)據(jù)存儲實(shí)體區(qū)域數(shù)據(jù)存儲實(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ū)域被自動分割成兩個(gè)相同閾值后,這個(gè)區(qū)域被自動分割成兩個(gè)相同 大小的區(qū)域大小的區(qū)域 區(qū)域以分布式的方式分布在集群內(nèi)區(qū)域以分布式的方式分布在集群內(nèi) 云計(jì)算系列教程9 區(qū)域的

10、管理區(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ù)器對服務(wù)特定區(qū)域指派區(qū)域服務(wù)器對服務(wù)特定區(qū)域 恢復(fù)失效的區(qū)域服務(wù)器恢復(fù)失效的區(qū)域服務(wù)器 云計(jì)算系列教程9 特殊目錄數(shù)據(jù)特殊目錄數(shù)據(jù) 元數(shù)據(jù)元數(shù)據(jù)(META)(META) 全部用戶區(qū)域的屬性數(shù)據(jù)都存在元數(shù)據(jù)表中全部用戶區(qū)域的屬性數(shù)

11、據(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ù)存 儲在儲在“根根”結(jié)點(diǎn)上結(jié)點(diǎn)上 云計(jì)算系列教程9 特殊目錄數(shù)據(jù)特殊目錄數(shù)據(jù) “根根”表表(ROOT)(ROOT) 只存包含一個(gè)區(qū)域只存包含一個(gè)區(qū)域 將元數(shù)據(jù)中的區(qū)域映射到區(qū)域服務(wù)器將元數(shù)據(jù)中的區(qū)域映射到區(qū)域服務(wù)器 存儲元數(shù)據(jù)服務(wù)器位置以及映射了哪些元數(shù)據(jù)存儲元數(shù)據(jù)服務(wù)器位置以及映射了哪些元數(shù)據(jù) 區(qū)域區(qū)域 云計(jì)算系列教程9 區(qū)域服務(wù)器區(qū)域服務(wù)器(Region Server)

12、(Region Server)職職 能能 負(fù)責(zé)處理用戶的讀寫請求負(fù)責(zé)處理用戶的讀寫請求 向主服務(wù)器向主服務(wù)器(Master Server)(Master Server)上報(bào)自己的狀態(tài),上報(bào)自己的狀態(tài), 并獲取自己需要服務(wù)的區(qū)域并獲取自己需要服務(wù)的區(qū)域 為提高效率,消息通過捎帶為提高效率,消息通過捎帶(pigback)(pigback)方式通方式通 過過“心跳心跳”分組進(jìn)行傳遞分組進(jìn)行傳遞 云計(jì)算系列教程9 區(qū)域服務(wù)器區(qū)域服務(wù)器“寫寫” 寫數(shù)據(jù)首先寫入寫數(shù)據(jù)首先寫入“預(yù)寫預(yù)寫”日志日志 對于一個(gè)區(qū)域服務(wù)器而言,對其提供服務(wù)對于一個(gè)區(qū)域服務(wù)器而言,對其提供服務(wù) 的所有區(qū)域的的所有區(qū)域的“寫寫”操作

13、日志都存儲在同操作日志都存儲在同 一個(gè)日志中一個(gè)日志中 數(shù)據(jù)并非直接寫文件系統(tǒng),而是先緩存,數(shù)據(jù)并非直接寫文件系統(tǒng),而是先緩存, 緩存到一定數(shù)量再批量寫入緩存到一定數(shù)量再批量寫入 寫入完成后在日志中做標(biāo)記寫入完成后在日志中做標(biāo)記 云計(jì)算系列教程9 區(qū)域服務(wù)器區(qū)域服務(wù)器“讀讀” 區(qū)域服務(wù)器現(xiàn)在內(nèi)存的緩存中查找,如果區(qū)域服務(wù)器現(xiàn)在內(nèi)存的緩存中查找,如果 命中請求,則直接服務(wù)命中請求,則直接服務(wù) 如果存在多個(gè)版本,則返回順序按照從最如果存在多個(gè)版本,則返回順序按照從最 新到最老新到最老 云計(jì)算系列教程9 區(qū)域服務(wù)器合并區(qū)域服務(wù)器合并 如果映射文件如果映射文件(Map File)(Map File)數(shù)

14、量超過閾值,區(qū)數(shù)量超過閾值,區(qū) 域服務(wù)器會進(jìn)行一次合并域服務(wù)器會進(jìn)行一次合并(Compaction)(Compaction) 合并操作也周期性進(jìn)行合并操作也周期性進(jìn)行 合并可與區(qū)域服務(wù)器響應(yīng)用戶的讀寫請求合并可與區(qū)域服務(wù)器響應(yīng)用戶的讀寫請求 并發(fā)進(jìn)行并發(fā)進(jìn)行 如果讀寫請求與合并區(qū)域相關(guān),讀寫操作如果讀寫請求與合并區(qū)域相關(guān),讀寫操作 先掛起,直到合并操作完成先掛起,直到合并操作完成 云計(jì)算系列教程9 區(qū)域服務(wù)器分割區(qū)域服務(wù)器分割 當(dāng)區(qū)域文件大過閾值后,區(qū)域文件會按照當(dāng)區(qū)域文件大過閾值后,區(qū)域文件會按照 行的方式對半進(jìn)行分割行的方式對半進(jìn)行分割(Split)(Split)操作操作 分割也作為一種請

15、求被區(qū)域服務(wù)器處理分割也作為一種請求被區(qū)域服務(wù)器處理 被分割區(qū)域先離線被分割區(qū)域先離線 區(qū)域服務(wù)器在元信息表中生成子表元信息區(qū)域服務(wù)器在元信息表中生成子表元信息 主服務(wù)器在得知分割操作進(jìn)行后,將子表主服務(wù)器在得知分割操作進(jìn)行后,將子表 分配給新的區(qū)域服務(wù)器進(jìn)行服務(wù)分配給新的區(qū)域服務(wù)器進(jìn)行服務(wù) 被分割區(qū)域通過垃圾回收機(jī)制回收被分割區(qū)域通過垃圾回收機(jī)制回收 云計(jì)算系列教程9 區(qū)域服務(wù)器分割區(qū)域服務(wù)器分割 如果主服務(wù)器沒能正確收到分割消息,主如果主服務(wù)器沒能正確收到分割消息,主 服務(wù)器可通過定期檢查服務(wù)器可通過定期檢查MATAMATA數(shù)據(jù)發(fā)現(xiàn)分割數(shù)據(jù)發(fā)現(xiàn)分割 操作操作 開始分割操作后,被分割區(qū)域離線

16、,此時(shí)開始分割操作后,被分割區(qū)域離線,此時(shí) 客戶端能檢測到并在分割后的區(qū)域上線后客戶端能檢測到并在分割后的區(qū)域上線后 重發(fā)訪問請求重發(fā)訪問請求 云計(jì)算系列教程9 失效恢復(fù)失效恢復(fù) 由于檢測沒有心跳,主服務(wù)器能夠探知區(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ù)器 云計(jì)算系列教程9 客戶端客戶端 連接到連接到ZooK

17、eeperZooKeeper集群獲取根區(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ù)器交互以獲取數(shù)據(jù)直接與區(qū)域服務(wù)器交互以獲取數(shù)據(jù) 根區(qū)域數(shù)據(jù)、元數(shù)據(jù)以及用戶區(qū)域信息都根區(qū)域數(shù)據(jù)、元數(shù)據(jù)以及用戶區(qū)域信息都 被客戶端緩存以備下次訪問使用被客戶端緩存以備下次訪問使用 云計(jì)算系列教程9 系統(tǒng)總體結(jié)構(gòu)系統(tǒng)總體結(jié)構(gòu) HDFS Cluster Zoo Keeper Cluster Region Server Region Server Regio

18、n Server Master Server HStore Map Files HStore Map Files Region 云計(jì)算系列教程9 HBaseHBase安裝安裝 需要需要ZooKeeperZooKeeper支持支持 本身帶本身帶zookeeper.jarzookeeper.jar包包 步驟步驟 解壓,并添加支撐的解壓,并添加支撐的.jar.jar包到用戶包到用戶CLASS_PATHCLASS_PATH 修改修改confconf下下 hbase-env.sh, regionservershbase-env.sh, regionservers Hbase-site.xmlHbase-site.xml 啟動啟動Hbase: bin/start-hbase.shHbase: bin/start-hbase.sh 云計(jì)算系列教程9 HBase ShellHBase Shell 啟動啟動 bin/hbase shellbin/hbase shell 主要命令主要命令 create create 創(chuàng)建表創(chuàng)建表 describe describe 描述表描述表 enable

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論