您好,登錄后才能下訂單哦!
本篇內容介紹了“Hbase架構入門知識點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Hbase本身包含三部分,Zookeeper,HMaster,HRegionServer
Zookeeper: 1.保證任何時候只有一個活躍的Master 2.存儲所有的Region的地址,知道哪個Region存儲在哪臺機器上 3.時刻監控RegionServer的狀態,將RegionServer的上下線信息,RegionServer不直接向HMaster匯報,減輕HMaster的壓力,通過Zookeeoer發送信息 4.存儲Hbase的元數據結構(Schema),知道集群中有哪些Table,每個Table有哪些Column Family
HMaster: 1.為所有的RegionServer分配Region 2.負責RegionServer的負載均衡 3.發現失效的RegionServer,重新分配上面的Region 4.HDFS的垃圾文件 5.處理Schema請求(表的創建,刪除,修改,列族的增加等)
HRegionServer:負責數據的讀寫操作,客戶端直接和RegionServer交互
一個RegionServer會有多個Region,
每個Region有多個Store
每個Store有多個StoreFile(HFile)
每個Store有一個Memstore
客戶端通過發請求到RegionServer端,寫入的時候會先寫入WAL日志中,其次會將數據寫入memstore內存,當數據達到一定大小后會flush成一個個的StoreFile(HFile)文件,當文件達到一定數量后,通過compaction的操作合并成更大文件,這樣數據讀取會更快。
1)HRegion:
(1)、簡介:Table在行的方向上分隔為多個Region,Region是HBase中分布式存儲和負載均衡的最小單元,即不同的Region可以分在不同的RegionServer上面,但同一個Region是不會拆分到多個Server上面的。隨著數據的增多,某個列族的達到一個閾值就會分成兩個新的Region。結構:<表名,startRowkey,創建時間>,由目錄表(-ROOT-,.META.)記錄該Region的endRowkey (2)、Store:
(1)簡介:每一個Region由一個或則多個Store組成,至少是一個Store,HBase會把訪問的數據存放在Store中,即每一個列族建一個Store,如果有多個ColumnFamily,就多多個Store,一個Store由一個MemStore和0或則多個StoreFile組成。HBase通過Store的大小判斷是否需要切分Region。
(2)MemStore:它是放在內存中的,保存修改的數據,即key/values。當MemStore的大小達到一定的閾值的時候(默認128M),MemStore會被Flush到文件,即生成一個快照StoreFile,Flush過程由一個線程完成。
(3)StoreFile:StoreFile底層是HFile,HFile是Hadoop的二進制格式文件,
(2)HLog:WAL文件,用來災難恢復使用,HLog記錄數據的所有變更,一旦RegionServer宕機,就從HLog中進行恢復,HLog文件就是一個普通的Hadoop Sequence File,Sequence File記錄了寫入數據的歸屬信息,除了Table和Region名字外,還同時包括了Sequence Number和TimeStamp,Sequence File的value是HBase的key/value對象,即對應的HFile中的key/value。
其實Compaction操作屬于資源密集型操作特別是IO密集型,這點后面也會提及到,Compaction本質上其實就是犧牲了部分IO,以換取相對穩定的讀取性能。 compaction的核心作用是:通過合并大量小文件為一個大文件來減少hfile的總數量,進而保證讀延遲的穩定。
HBase Compaction分為兩種:Minor Compaction 與 Major Compaction,通常我們簡稱為小合并、大合并
“Hbase架構入門知識點有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。