




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1HBASE 2內(nèi)容提要內(nèi)容提要為什么需要為什么需要HBaseHBaseHTableHTable的邏輯組織的邏輯組織HBaseHBase的運行機制的運行機制HBaseHBase與與 HDFSHDFSHBaseHBase的對外接口的對外接口3引入引入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ū)等)難于安裝與維護安裝與維護關(guān)系模型對數(shù)據(jù)的操作使數(shù)據(jù)的存貯變得關(guān)系模型對數(shù)據(jù)的操作使數(shù)據(jù)的存貯變得復(fù)雜復(fù)雜4引入引入HBASE的原因的原因HBASEHBASE從設(shè)計理念上就為可
2、擴展做好了充從設(shè)計理念上就為可擴展做好了充分準備分準備空間的擴展只需要加入存儲結(jié)點空間的擴展只需要加入存儲結(jié)點使用使用表表的概念,但不同于關(guān)系數(shù)據(jù)庫,的概念,但不同于關(guān)系數(shù)據(jù)庫,不支持不支持SQLSQL實質(zhì)上是一張極大的、非常稀疏的,存儲實質(zhì)上是一張極大的、非常稀疏的,存儲在分布式文件系統(tǒng)上的表在分布式文件系統(tǒng)上的表5HBaseHBase歷史歷史20062006年底由年底由PowerSet PowerSet 的的Chad WaltersChad Walters和和Jim Jim Kellerman Kellerman 發(fā)起發(fā)起20082008年成為年成為Apache HadoopApache
3、Hadoop的一個子項目的一個子項目現(xiàn)已作為產(chǎn)品被使用現(xiàn)已作為產(chǎn)品被使用WorldLingoWorldLingoSSOpenPlacesOpenPlacesYahooYahooAdobeAdobe6HBASEHBASE用例用例WebTableWebTable存儲抓取網(wǎng)頁和相關(guān)信息存儲抓取網(wǎng)頁和相關(guān)信息每個頁面對應(yīng)一行,是個有百萬行的大表每個頁面對應(yīng)一行,是個有百萬行的大表要基于此表進行分析與解析并由搜索引擎要基于此表進行分析與解析并由搜索引擎對關(guān)鍵字進行索引對關(guān)鍵字進行索引表需要并發(fā)地被眾多網(wǎng)頁抓取程序隨機地表需要并發(fā)地被眾多網(wǎng)頁抓取程序隨機地訪問以及更新數(shù)據(jù)訪問以及更新數(shù)據(jù)表內(nèi)容也要作為網(wǎng)頁
4、實時緩存被大量用戶表內(nèi)容也要作為網(wǎng)頁實時緩存被大量用戶隨機訪問隨機訪問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)鍵字和任意列項每行數(shù)據(jù)有一可排序的關(guān)鍵字和任意列項字符串、整數(shù)、二進制串甚至與串行化的字符串、整數(shù)、二進制串甚至與串行化的結(jié)構(gòu)都可以作為行鍵結(jié)構(gòu)都可以作為行鍵表按照行鍵的表按照行鍵的“逐字節(jié)排序逐字節(jié)排序”順序?qū)π羞M順序?qū)π羞M行有序化處理行有序化處理表內(nèi)數(shù)據(jù)非常表內(nèi)數(shù)據(jù)非常稀疏稀疏,不同的行的列的,不同的行的列的數(shù)完全目可以大不相同數(shù)完全目可以大不相同10數(shù)據(jù)模型行數(shù)據(jù)模型行可以只對一行上可以只對一行上“鎖鎖”對行的寫操作是始終是對行的寫操作是始終是“原子原子”的的11數(shù)據(jù)模型列數(shù)據(jù)模型列列必須用列必須用族族(family)(family)來定義來定義任意一列有如下形
6、式任意一列有如下形式“族:標簽族:標簽”其中,族和標簽都可為任意形式的串其中,族和標簽都可為任意形式的串物理上將同物理上將同“族族”數(shù)據(jù)存儲在一起數(shù)據(jù)存儲在一起數(shù)據(jù)可通過時間戳區(qū)分版本數(shù)據(jù)可通過時間戳區(qū)分版本12數(shù)據(jù)模型列數(shù)據(jù)模型列Row KeyTime StampColumn ContentsColumn AnchorColumn “mime”my.look.ca“n.www”T9CNNT8CNN.COMT6“. “Text/htmlT5“. “t3“. “族標簽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ù)存儲實體區(qū)域數(shù)據(jù)存儲實體區(qū)域表按照表按照“水平水平”的方式劃分成一個或多個的方式劃分成一個或多個“區(qū)域區(qū)域”(region)(region)每個區(qū)域都包含一個隨機每個區(qū)域都包含一個隨機id id,區(qū)域內(nèi)的行也,區(qū)域內(nèi)的行也是按行鍵有序的是按行鍵有序的最初每張表包含一個區(qū)域,當表增大超過最初每張表包含一個區(qū)域,當表增大超過閾值后,這個區(qū)域被自動分割成兩個相同閾值后,這個區(qū)域被自動分割成兩個相同大小的區(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ù)負責維護區(qū)域的分割負責維護區(qū)域的分割負責數(shù)據(jù)存持久化負責數(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ù)器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ù)表也可包含多個區(qū)域,區(qū)域?qū)傩詳?shù)據(jù)存元數(shù)據(jù)表也可包含多個區(qū)域,區(qū)域?qū)傩詳?shù)據(jù)存儲在儲在“根根”結(jié)點上結(jié)點上19特殊目錄數(shù)據(jù)特殊目錄數(shù)據(jù)“根根”表表(ROOT)(ROOT)只存包含一個區(qū)域只存包含一個區(qū)域?qū)⒃獢?shù)據(jù)中的區(qū)域映射到區(qū)域服務(wù)器將元數(shù)據(jù)中的區(qū)域映射到區(qū)域服務(wù)器存儲元數(shù)據(jù)服務(wù)器位置以及映射了哪些元數(shù)據(jù)存儲元數(shù)據(jù)服務(wù)器位置以及映射了哪些元數(shù)據(jù)區(qū)域區(qū)域20區(qū)域服務(wù)器區(qū)域服務(wù)器(Region Server)(Region Server)職職能
11、能負責處理用戶的讀寫請求負責處理用戶的讀寫請求向主服務(wù)器向主服務(wù)器(Master Server)(Master Server)上報自己的狀態(tài),上報自己的狀態(tài),并獲取自己需要服務(wù)的區(qū)域并獲取自己需要服務(wù)的區(qū)域為提高效率,消息通過捎帶為提高效率,消息通過捎帶(pigback)(pigback)方式通方式通過過“心跳心跳”分組進行傳遞分組進行傳遞21區(qū)域服務(wù)器區(qū)域服務(wù)器“寫寫”寫數(shù)據(jù)首先寫入寫數(shù)據(jù)首先寫入“預(yù)寫預(yù)寫”日志日志對于一個區(qū)域服務(wù)器而言,對其提供服務(wù)對于一個區(qū)域服務(wù)器而言,對其提供服務(wù)的所有區(qū)域的的所有區(qū)域的“寫寫”操作日志都存儲在同操作日志都存儲在同一個日志中一個日志中數(shù)據(jù)并非直接寫文件
12、系統(tǒng),而是先緩存,數(shù)據(jù)并非直接寫文件系統(tǒng),而是先緩存,緩存到一定數(shù)量再批量寫入緩存到一定數(shù)量再批量寫入寫入完成后在日志中做標記寫入完成后在日志中做標記22區(qū)域服務(wù)器區(qū)域服務(wù)器“讀讀”區(qū)域服務(wù)器現(xiàn)在內(nèi)存的緩存中查找,如果區(qū)域服務(wù)器現(xiàn)在內(nèi)存的緩存中查找,如果命中請求,則直接服務(wù)命中請求,則直接服務(wù)如果存在多個版本,則返回順序按照從最如果存在多個版本,則返回順序按照從最新到最老新到最老23區(qū)域服務(wù)器合并區(qū)域服務(wù)器合并如果映射文件如果映射文件(Map File)(Map File)數(shù)量超過閾值,區(qū)數(shù)量超過閾值,區(qū)域服務(wù)器會進行一次合并域服務(wù)器會進行一次合并(Compaction)(Compaction
13、)合并操作也周期性進行合并操作也周期性進行合并可與區(qū)域服務(wù)器響應(yīng)用戶的讀寫請求合并可與區(qū)域服務(wù)器響應(yīng)用戶的讀寫請求并發(fā)進行并發(fā)進行如果讀寫請求與合并區(qū)域相關(guān),讀寫操作如果讀寫請求與合并區(qū)域相關(guān),讀寫操作先掛起,直到合并操作完成先掛起,直到合并操作完成24區(qū)域服務(wù)器分割區(qū)域服務(wù)器分割當區(qū)域文件大過閾值后,區(qū)域文件會按照當區(qū)域文件大過閾值后,區(qū)域文件會按照行的方式對半進行分割行的方式對半進行分割(Split)(Split)操作操作分割也作為一種請求被區(qū)域服務(wù)器處理分割也作為一種請求被區(qū)域服務(wù)器處理被分割區(qū)域先離線被分割區(qū)域先離線區(qū)域服務(wù)器在元信息表中生成子表元信息區(qū)域服務(wù)器在元信息表中生成子表元信
14、息主服務(wù)器在得知分割操作進行后,將子表主服務(wù)器在得知分割操作進行后,將子表分配給新的區(qū)域服務(wù)器進行服務(wù)分配給新的區(qū)域服務(wù)器進行服務(wù)被分割區(qū)域通過垃圾回收機制回收被分割區(qū)域通過垃圾回收機制回收25區(qū)域服務(wù)器分割區(qū)域服務(wù)器分割如果主服務(wù)器沒能正確收到分割消息,主如果主服務(wù)器沒能正確收到分割消息,主服務(wù)器可通過定期檢查服務(wù)器可通過定期檢查MATAMATA數(shù)據(jù)發(fā)現(xiàn)分割數(shù)據(jù)發(fā)現(xiàn)分割操作操作開始分割操作后,被分割區(qū)域離線,此時開始分割操作后,被分割區(qū)域離線,此時客戶端能檢測到并在分割后的區(qū)域上線后客戶端能檢測到并在分割后的區(qū)域上線后重發(fā)訪問請求重發(fā)訪問請求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ù)器進行分割并派送給新的區(qū)域服務(wù)器務(wù)器進行分割并派送給新的區(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啟動啟動Hbase: bin/start-hbase.shHbase: bin/start-hbase.sh30HBase ShellHBase Shell啟動啟動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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北商貿(mào)學(xué)院《天然藥物化學(xué)研究前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 玉溪農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《巖土工程測試技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 徐州工程學(xué)院《攝影與影像基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長治幼兒師范高等??茖W(xué)校《智能時代下的創(chuàng)新創(chuàng)業(yè)實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州幼兒師范高等專科學(xué)?!对O(shè)計素描》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東江門幼兒師范高等專科學(xué)?!犊萍颊撐膶懽髋c學(xué)術(shù)規(guī)范》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工商大學(xué)《跨國企業(yè)經(jīng)營與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 第15課《白楊禮贊》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版語文八年級上冊
- 隆化租房合同范本
- 全國江西科學(xué)技術(shù)版小學(xué)信息技術(shù)六年級下冊第一單元第1課《控制的概念》教學(xué)設(shè)計
- 四年級下冊勞動《小小快遞站》課件
- 中國妊娠期糖尿病母兒共同管理指南(2024版)解讀
- 春節(jié)促銷活動方案(7篇)
- 《股市的基礎(chǔ)常識》課件
- 火災(zāi)自動報警及其消防聯(lián)動系統(tǒng)技術(shù)規(guī)格書
- 設(shè)備管理人員安全培訓(xùn)
- 山東省房屋市政工程安全監(jiān)督機構(gòu)人員業(yè)務(wù)能力考試題庫-上(單選題)
- 2024年六西格瑪黃帶認證考試練習題庫(含答案)
- 《公務(wù)員行測必會考試寶典》大全(分類)-2資料分析類試題庫(含答案)
- 2024年山東省(棗莊、菏澤、臨沂、聊城)中考語文試題含解析
- 財務(wù)審計服務(wù)方案投標文件(技術(shù)方案)
評論
0/150
提交評論