hadoop應用14.第周關于hbase_第1頁
hadoop應用14.第周關于hbase_第2頁
hadoop應用14.第周關于hbase_第3頁
hadoop應用14.第周關于hbase_第4頁
hadoop應用14.第周關于hbase_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、關于HBase課程內容HBase簡介HBase架構HBase ShellHBase 實戰2/51什么是HBase3/51什么是HBaseHBase是Apache的Hadoop子項目。HBase是一個適合于非結構化數據存儲的數據庫HBase是一個分布式的、面向列的開源數據庫,該技術來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化數據的分布式存儲系統”基于Hadoop的數據庫、分布式可伸縮大型數據存儲。十億行、百萬列存儲4/51HBase存儲格式5/51HBase概念RowKey:是表中每條記錄的“主鍵”,方便快速查找,Rowkey的設計非常重要;Column F

2、amily:列族,擁有一個名稱(string),包含一個或者多個相關列;Column:屬于某一個columnfamily,familyName:columnName,每條記錄可動態添加;Version Number:類型為Long,默認值是系統時間戳,可由用戶自定義;Value(Cell):Byte array類型的指6/51HBase示例7/51HBase集群8/51HBase集群ZooKeeper作用通過選舉,保證任何時候,集群中只有一個MasterMaster與Regionservers 啟動時會向ZooKeeper注冊,存貯所有Region的尋址入口實時監控Regionserver的上

3、線和下線信息。并實時通知給Master存儲HBase的schema和table元數據ZooKeeper確保Master不再是單點故障9/51HBase特性數據讀寫:隨機、實時讀寫數據、嚴格一致性讀寫自動分區:表增長的時候,表會自動裂變成區域,并分布到可用的節點上線性擴展和對新節點自動處理:增加一個節點,把它指向現有集群并運行regionserver。區域自動重新進行平衡,負載均衡普通商用硬件支持容錯:不用擔心單點失效、區域服務器之間自動容災批處理:MapReduce集成功能可以用全并行的分布式作業來處理10/51HBase適用場景 存在高并發讀寫 表結構的列族經常需要調整 存儲結構化或半結構化

4、數據 高并發的key-value存儲 針對每個key保存一個固定大小的集合 、多版本11/51HBase不適用場景HBase只提供行鎖,它對分布式事務支持不好對于查詢操作中的join、group by 性能很差查詢如果不使用row-key查詢,性能會很差,因為此時會進行全表掃描高并發的隨機讀支持有限12/51課程內容HBase簡介HBase架構HBase ShellHBase實戰13/51HBase架構14/51HBase架構Client:包含訪問HBase的接口,并維護cache來加快對HBase的訪問,比如region的位置信息Master:為Regionserver分配region負責R

5、egion server的負載均衡發現失效的Regionserver并重新分配其上的region管理用戶對table的增刪改查操作RegionserverRegionserver維護region,處理對這些region的IO請求Regionserver負責切分在運行過程中變得過大的region15/51HBase架構HRegion:HRegion對應table中一個region,HRegion由多個Store組成Store:每個Store對應Table中一個Column Family的存儲,一個Store由一個MemStore和0或多個StoreFile組成。 HBase根據Store的大小來

6、判斷是否需要切分HRegion。MemStore:MemStore 將數據存儲在內存里。當MemStore的大小達到一個閥值(默認64MB)時,MemStore會被Flush到文件。StoreFile:MemStore內存中的數據寫到文件后就是StoreFile,StoreFile底層是以File的格式保存。16/51HBase讀寫流程17/51HBase寫流程Client通過Zookeeper的調度,向RegionServer發出寫數據請求,在Region中寫數據。數據被寫入Region的MemStore,直到MemStore達到預設閾值。MemStore中的數據被Flush成一個Store

7、File。隨著StoreFile文件的不斷增多,當其數量增長到一定閾值后,觸發Compact合并操作,將多個StoreFile合并成一個StoreFile,同時進行版本合并和數據刪除。18/51HBase寫流程StoreFiles通過不斷的Compact合并操作,逐步形成越來越大的StoreFile。單個StoreFile大小超過一定閾值后,觸發Split操作,把當前Region Split成2個新的Region。父Region會下線,新Split出的2個子Region會被Master分配到相應的RegionServer上,使得原先1個Region的壓力得以分流到2個Region上。19/51

8、HBase高可用-WALWAL:(Write-Ahead-Log)預寫日志是是事務機制中常見的一致性的實現方式。HBase中的HLog機制是WAL的一種實現每個Regionserver中都會有一個HLog的實例,每次用戶操作寫入Memstore的同時,也會寫一份數據到HLog文件,HLog文件定期會滾動出新,并刪除舊的文件(已持久化到StoreFile中的數據)。20/51HBase高可用HLog恢復Regionserver意外終止后,Master會通過ZooKeeper感知到Master首先處理遺留的HLog文件,將不同region的log數據拆分,分別放到相應region目錄Master將

9、失效的region重新分配給Regionserver領取到region的Regionserver在Load Region的過程中,發現有歷史遺留的HLog需要處理,會Replay HLog中的數據到MemStore中通過flush到StoreFiles,完成數據恢復。21/51HBase高可用組件Master容錯:ZooKeeper重新選擇一個新的Master。如果無Master過程中,數據讀取仍照常進行,但是,region切分、負載均衡等無法進行;RegionServer容錯:通過心跳定時向ZooKeeper匯報狀態,如果一段時間內未出現心跳,Master將該Regionserver上的Re

10、gion重新分配到其他Regionserver上,失效服務器上HLog由Master進行分割并派送給新的Regionserver;ZooKeeper容錯:ZooKeeper一般配置3或5個實例,避免單點故障。22/51HBase讀流程Client訪問Zookeeper,查找-ROOT-表,獲取.META.表信息。從.META.表查找,獲取存放目標數據的Region信息,從而找到對應的RegionServer。通過RegionServer獲取需要查找的數據。Regionserver的內存分為MemStore和BlockCache兩部分,MemStore主要用于寫數據,BlockCache主要用于讀數據。讀請求先到MemStore中查數據,查不到就到BlockCache中查,再查不到就會到StoreFile上讀,并把讀的結果放入BlockCache。23/51HBase存儲24/51/hbase/data/$名字空間/$表名/$區域名稱/$列族名稱/$文件名HBase的信息25/51課程內容HBase簡介HBase架構HBase ShellHBase實戰26/51HBase Shell27/51HBase Shell28/51HBas

溫馨提示

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

評論

0/150

提交評論