標籤:請求 地區 database 訪問 均衡 生態系統 定址 schema strong
- hadoop生態系統
zookeeper負責協調 hbase必須依賴zookeeper
flume 日誌工具
sqoop 負責 hdfs dbms 資料轉換 資料到關係型資料庫轉換
大資料學習群119599574
- hbase簡介
hadoop database
- 是一個高可靠性、高效能、面向列、可伸縮、即時讀寫的分散式資料庫
- 利用Hadoop HDFS作為其檔案儲存體系統,利用Hadoop MapReduce 來處理Hbase中的海量資料,利用Zookeeper作為其分布式系統服務
- 主要用來儲存非結構化和半結構化的鬆散資料(列存NoSql資料庫)
hbase資料模型
ROW KEY
- 決定一行資料
- 按照欄位順序排序
- Row key只能儲存64k的位元組資料
Column Family列族 &qualifier列
- Hbase表中的每個列都歸屬於某個列族,列族必須作為表模式定義的一部分給出 如create ‘test‘;
- 列名以列族作為首碼,每個“列族”都可以y9uo多個列成員column,如test:testfirst,新的列成員可以隨後按需、動態加入;
- 許可權控制,儲存以及調優都是列族層面進行的
- Hbase把同一列族裡面的資料存放區在同一目錄下,由幾個檔案儲存
Timestamp 時間戳記
- 在HBase每個cell儲存單元對同一份資料有多個版本,根據唯一的時間戳記來區分每個版本之間的差異,不同版本的資料按照時間倒序排序,最新的資料版本排在最前面。
- 時間戳記的類型是 64位整型。
- 時間戳記可以由HBase(在資料寫入時自動)賦值,此時時間戳記是精確到毫秒的當前系統時間。
- 時間戳記也可以由客戶顯式賦值,如果應用程式要避免資料版本衝突,就必須自己產生具有唯一性的時間戳記。
cell 儲存格
- 由行和列的座標交叉決定;
- 儲存格是有版本的;
- 儲存格的內容是未解析的位元組數組;
- 由{row key, column( =<family> +<qualifier>), version} 唯一確定的單元。
- cell中的資料是沒有類型的,全部是位元組碼形式存貯。
HLog(wal log)
- HLog檔案就是一個普通的Hadoop Sequence File,Sequence File 的Key是HLogKey對象,HLogKey中記錄了寫入資料的歸屬資訊,除了table和region名字外,同時還包括 sequence number和timestamp,timestamp是” 寫入時間”,sequence number的起始值為0,或者是最近一次存入檔案系統中sequence number。
- HLog SequeceFile的Value是HBase的KeyValue對象,即對應HFile中的KeyValue。
HBase 架構
client
- 包含訪問HBase的介面並維護cache來加快對HBase的訪問
zookeeper
- 保證任何時候,叢集中只有一個master
- 儲存所有Region的定址入口
- 即時監控Region server的上線和下線資訊。並即時通知master
- 儲存Hbase的 schema 和table中繼資料
Master
- 為Region server 分配region
- 負責Region server的負載平衡
- 發現失效的Region server並重新分配騎上的region
- 系統管理使用者對table的增刪改操作
RegionServer
- Region server維護region,處理對這些region的IO請求
- Region server負責切分在運行過程中變得過大的region
Region
- Hbase自動把表水平劃分成多個地區(region),每個region會儲存一個表裡面某段連續的資料
- 每個表開始只有一個region,隨著資料不斷插入表,region不斷增大,當增大到一個閾值時,region就會分為兩個新的region(裂變)
- 當table中的行不斷增多,就會有越來越多的region。這樣一張完整的表儲存在多個regionServer上。
大資料學習群119599574
Memstore與storefile
- 一個region由多個store組成,一個store對應一個列族(cf)
- store包括位於記憶體中的memstore和位於磁碟的storefile寫操作先寫入memstore,當memstore中的資料達到某個閾值,hregionserver會啟動flashcacher進程寫入storefile,每次寫入形成單獨的一個storefile
- 當storefile檔案的數量增長到一定閾值後,系統會進程合并 (minor、major compaction),在合并過程中會進行版本合并和刪除工作major形成更大的storefile
- 當一個region所有storefile的大小和數量超過一定閾值後,會把當前的regjion分割為兩個,並由hmaster分配到相應的regionserver伺服器,達到負載平衡
- 用戶端檢索資料,現在memstore找,找不到再找storefile
HRegion
- Hregion是HBase中分布式儲存和負載平衡的最小單元。最小單元就表示不同的HRegion可以分布在不通的HRegion server上
- HRegion 由一個或者多個Store組成,每個store儲存一個column family
- 每個Store又由一個memStore和0至多個StoreFile組成。 StoreFIle 以HFILe格式儲存於HDFS上。
大資料學習系列之—HBASE