數(shù)據庫系統(tǒng)原理與開發(fā)-列存儲數(shù)據庫-3_第1頁
數(shù)據庫系統(tǒng)原理與開發(fā)-列存儲數(shù)據庫-3_第2頁
數(shù)據庫系統(tǒng)原理與開發(fā)-列存儲數(shù)據庫-3_第3頁
數(shù)據庫系統(tǒng)原理與開發(fā)-列存儲數(shù)據庫-3_第4頁
數(shù)據庫系統(tǒng)原理與開發(fā)-列存儲數(shù)據庫-3_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

列存儲數(shù)據庫鳳荔用本節(jié)學目地?HBASE地關鍵算法?HBASE應用API?HBase地應用場景一鳳荔用一,HBASE地關鍵算法?一區(qū)域(Region)地定位?二高可用地保證:Write-Ahead-Log(WAL)保障數(shù)據高可用,組件高可用?三數(shù)據地讀寫流程?四區(qū)域服務器工作機制--區(qū)域分配,區(qū)域服務器上線下線?五主服務器地工作機制--主服務器上線,下線二鳳荔用HBASE地關鍵算法—基礎?系統(tǒng)結構圖三鳳荔用區(qū)域(Region)地定位?原理圖-----ROOT,META?-ROOT-:表包含.META.表所在地region列表,該表只會有一個Region;Zookeeper記錄了-ROOT-表地location。?.META.:表包含所有地用戶空間region列表,以及RegionServer地服務器地址。四鳳荔用區(qū)域(Region)地定位?-ROOT-表永遠不會被分割,只有一個區(qū)域,最多三次跳轉就可以定位任意一個區(qū)域。?.META.表地所有區(qū)域全部保存在內存。客戶通過ZooKeeper重新定位區(qū)域地信息。?一個表會包含很多個區(qū)域,分布存儲在不同地服務器上。數(shù)據在MemStore內緩存,數(shù)據填滿,生成HFile。五鳳荔用區(qū)域(Region)地定位?尋址機制--從Blog里面尋找一條記錄,特定RowKey值地數(shù)據。步驟如下:?(一)從.META.表查詢包含該數(shù)據地Region。?(二)獲取Region地RegionServer地址。?(三)連接RegionServer,查到這條數(shù)據。?第一層zookeeper地文件,有rootregion地位置。?第二層rootregion保存了.META.與其它region地位置。?第三層是.META.,保存了所有數(shù)據表地region信息。六鳳荔用區(qū)域(Region)地定位?(一)rootregion永遠不會被split,三次跳轉,就能定位到任意region。?(二).META.表每行保存一個region地位置,rowkey采用表名+表地最后一行編碼而成。?(三).META.表地全部region都保存在內存。?(四)client將查詢過地位置信息保存緩存起來,緩存不會主動失效,如果緩存全部失效,則最多六次網絡來回,定位到正確地region(其三次用來發(fā)現(xiàn)緩存失效,另外三次用來獲取位置信息)。七鳳荔用高可用地保證算法?Write-Ahead-Log(WAL)保障數(shù)據高可用,分布式環(huán)境下使用HLog恢復.?HLog機制是WAL(預寫日志)地一種實現(xiàn),每個區(qū)域服務器一個HLog地實例丟失。?HFile由很多個數(shù)據塊(Block)組成,結尾地數(shù)據塊包含了數(shù)據有關地索引信息。?區(qū)域服務器意外終止后,HMaster會通過Zookeeper感知,HLog完成數(shù)據恢復。八鳳荔用高可用地保證算法?組件高可用體現(xiàn)在以下三個分布式組件上:?Master容錯,Master出錯,Zookeeper重新選擇一個新地Master。沒有Master過程,數(shù)據讀取仍照常行,region切分,負載均衡等無法行。?區(qū)域服務器容錯:Zookeeper檢測區(qū)域服務器,失效后由主服務器行分割并派送給新地區(qū)域服務器;?Zookeeper容錯:Zookeeper是一個可靠地服務,一般配置三或五個Zookeeper實例。九鳳荔用數(shù)據地讀寫流程-讀?(一)客戶端通過zookeeper以及root表與.META.表查找,目地Region信息。?(二)聯(lián)系區(qū)域服務器查詢目地數(shù)據。?(三)區(qū)域服務器定位,發(fā)查詢請求。?(四)region先在memstore查找,命返回?(五)在storefile掃描(可能會掃描到很多地storefile)?尋址過程:client-->Zookeeper-->-ROOT-表-->.META.表-->RegionServer-->Region-->client鳳荔用數(shù)據地讀寫流程-寫?(一)Client通過Zookeeper地調度,向區(qū)域服務器發(fā)出寫數(shù)據請求。?(二)區(qū)域服務器找到目地區(qū)域?(三)區(qū)域檢查數(shù)據是否與schema一致?(四)如果客戶端沒有指定版本,則獲取當前系統(tǒng)時間作為數(shù)據版本?(五)將更新寫入WALlog?(六)將更新寫入Memstore。?(七)判斷Memstore地是否需要flush為Store文件。?(八)單個StoreFile大小超過一定閾值后,觸發(fā)Split操作。鳳荔用數(shù)據地讀寫流程—可靠保證細節(jié)?使用MemStore與StoreFile存儲對表地更新。?系統(tǒng)會在zookeeper記錄一個redopoint,系統(tǒng)出現(xiàn)意外時,用Log(WALlog)來恢復checkpoint之后地數(shù)據。?一個Store地StoreFile達到一定地閾值后合并或分裂split。鳳荔用五.master工作機制-上線?(一)從zookeeper上獲取唯一一個代表activemaster地鎖,阻止其它成為master。?(二)掃描zookeeper上地server父節(jié)點,獲得當前可用地區(qū)域服務器列表。?(三)與每個區(qū)域服務器通信,獲得當前已分配地region與區(qū)域服務器地對應關系。?(四)掃描.META.region地集合,計算得到當前還未分配地region,將它們放入待分配region列表。鳳荔用五.master工作機制----下線?不參與表數(shù)據IO地過程,master下線僅導致所有元數(shù)據地修改被凍結(無法創(chuàng)建刪除表,無法修改表地schema,無法行region地負載均衡,無法處理region上下線,無法行region地合并?唯一例外地是region地split可以正常行,因為只有區(qū)域服務器參與),表地數(shù)據讀寫還可以正常行。?master下線短時間內對整個hbase集群沒有影響。鳳荔用二,HBASE地API?HBase地API為客戶端提供不同地訪問方式來存取Hbase地數(shù)據,包括三個大類:?HBaseShell,?JAVAclientAPI,?HBase非JAVA存取方式。鳳荔用HBASE地shell?HBaseShell支持地命令包括通用命令:?status提供HBase地狀態(tài),?version提供正在使用HBase版本,?table_help表引用命令提供幫助,?whoami提供有關用戶地信息等;?create,alter,drop一個表,?list列出HBase地所有表,?disable,enable表等鳳荔用HBASE地JavaAPI?JavaAdminAPI:通過API編程來管理實現(xiàn)Dorg.apache.hadoop.hbase.client包有HBaseAdmin與HTableDescriptor這兩個重要地類提供DDL功能。?JavaclientAPI:Java提供了一個客戶端API來實現(xiàn)DML功能,CRUD(創(chuàng)建檢索更新刪除)操作更多地是通過編程,在org.apache.hadoop.hbase.client包下。鳳荔用HBASE地non-Java?與Java虛擬機通訊地語言LanguagetalkingtotheJVM?特定地協(xié)議地語言Languagewithacustomprotocol?HBASE地一些約定語言Thriftg

溫馨提示

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

評論

0/150

提交評論