1. 程式人生 > >HBase(入門三)讀寫流程

HBase(入門三)讀寫流程

一.HBase和Hadoop的叢集型別
1.單機模型
主要用於開發工作,一臺機器上執行所有的守護程序,或者一臺機器執行多個虛擬機器,一般用於評估和測試.
2.小型叢集
20臺機器以內的叢集,不同的機器執行不同的守護執行緒,適用於資料量和處理請求較小的小型生產環境.
3.中型叢集
20到1000臺機器叢集,3到5個zooKeeper節點,適用於成熟的生產環境.
4.大型叢集
1000臺機器以上的叢集,屬於超大規模叢集了,適用於大規模生產環境.
二.HBase的讀寫流程
1.HBase讀資料流程
HRegionserver儲存著meta表以及表資料,要訪問表資料的時候,首先Client選取訪問zookeeper,獲取到meta表所在的位置資訊,即找到這個meta表在哪個HRegionServer上儲存著.
接著Client通過剛才獲取到的HRegionServer的IP來訪問meta表所在的HRegionServer,從而讀取到Meta,進而獲取到Meta表中存放的元資料.
Client通過元資料中的儲存的資訊,訪問對應的HRegionServer,然後掃描所在HRegionServerde Memstore和Storefile來查詢資料.
最後HRegionServer把查詢到的資料相應給Client.
在這裡插入圖片描述


2.HBase寫資料的流程
Client也是先訪問zookeeper,找到Meta表,並獲取Meta表的元資料.
確定當前將要寫入的資料所對應的HRegion和HRegionServer伺服器.
Client向該HRegionServer伺服器發起寫入資料請求,然後HRegionServer收到請求並響應.
Client先把資料寫入到本地的Hlog中,以防止資料的丟失.
然後將資料寫入到Memstore.
如果HLog和Memstore都寫入成功以後,則這條資料寫入成功.
如果Memstore達到閾值,會把Memstore中的資料flush到Storefile中.
當storefile越來越多,會觸發Compact合併操作,把過多的Storefile合併成一個大的Storefile.
當Storefile越來越大,Region也會越來越大,達到閾值後,會觸發Split操作,將Region分割.
在這裡插入圖片描述

三.HBase中的3個重要機制
3.1flush機制
當MenmStore達到閾值,將Memstore中的資料Flush進Storefile
3.2compact機制
把小的MEMSTORE檔案合併成大的Storefile檔案
3.3split機制
當Region達到閾值,會把過大的Region一分為二.
四.檔案格式說明
tsv格式檔案:欄位之間以製表符\t分割
csv格式檔案:字元之間以逗號分割
五.HBase內含元件
Hfile
Hfile在磁碟上儲存原始資料的實際的物理檔案,是實際的儲存檔案.
Store
HFile儲存在Store中,一個Store對應HBase表中的一個列族.
MemStore
顧名思義,就是記憶體儲存,位於記憶體中,用來儲存當前的資料操作,所以當資料儲存在WAL中之後,RegionServer會在記憶體中儲存鍵值對.
Region
HBase表的分片,HBase表會根據RowKey值被切分成不同的region儲存在RegionServer中,在一個RegionServer中可以有不同的region.

Zookeeper
HMaster和HRegionServerr啟動時會向ZooKeeper註冊,儲存所有HRegion的定址入口,實時監控HRegionserver的上線和下線資訊,並實時通知給HMaster,儲存HBase的schema和table元資料,預設情況下,HBase管理ZooKeeper例項,ZooKeeper的引入使得HMaster不再是單點故障.