Hbase 學習筆記:Hbase 概覽

Hbase概述

HBase構建在 HDFS 之上,Hbase內部管理的文件所有存儲在HDFS 中緩存

Hbase 表的特色

  • 無模式
  • 面向列
  • 稀疏 對於空( null )的列,並不佔用存儲空間
  • 數據多版本
  • 數據類型單一 Hbase中的數據都是字符串,沒有類型。

hbase數據模型

Row Key

行鍵,Table的主鍵,Table中的記錄按照Row Key排序。類型爲Byte array服務器

Column Family

列簇,Table在水平方向有一個或者多個Column Family組成,一個Column Family中能夠由任意多個Column組成架構

Column

列 格式爲:familyName:columnName併發

Version Number

版本號。默認值是系統時間戳。每一個 rowkey 惟一。類型爲long負載均衡

Value (Cell)

具體的值,類型爲Byte array分佈式

Hbase物理模型

每一個 column family 存儲在 HDFS 上的一個單獨文件中高併發

Key 和 Version number 在每一個 column family 中均有一份大數據

HBase 爲每一個值維護了多級索引,即: key, column family, column name, timestampspa

Table 中的全部行都按照 row key 的字典序排列server

Table 在行的方向上分割爲多個Region;

Region 按大小分割的,每一個表開始只有一個 region ,隨着數據增多, region 不斷增大,當增大到一個閥值的時候,region就會等分會兩個新的region,以後會有愈來愈多的region

Region 是 HBase 中分佈式存儲和負載均衡的最小單元。不一樣Region分佈到不一樣RegionServer上

Region 雖然是分佈式存儲的最小單元,但並非存儲的最小單元。

  1. Region 由一個或者多個 Store 組成,每一個 store 保存一個columns family ;
  2. 每一個 Strore 又由一個 memStore 和 0 至多個 StoreFile 組成;
  3. memStore 存儲在內存中, StoreFile 存儲在 HDFS 上**

Hbase架構

TB2LKN6dpXXXXapXpXXXXXXXXXX_!!1576560244.png

Hbase 基本組件

Client

包含訪問 HBase 的接口,並維護 cache 來加快對 HBase 的訪問

Zookeeper

  • 保證任什麼時候候,集羣中只有一個 master
  • 存貯全部 Region 的尋址入口
  • 實時監控 Region server 的上線和下線信息。並實時通知給 Master
  • 存儲 HBase 的 schema 和 table 元數據

Master

  • 爲 Region server 分配 region
  • 負責 Region server 的負載均衡
  • 發現失效的 Region server 並從新分配其上的 region
  • 管理用戶對 table 的增刪改查操做

Region Server

  • Region server 維護 region ,處理對這些 region 的 IO 請求
  • Region server 負責切分在運行過程當中變得過大的 region

Zookeeper 做用

Zookeeper避免了HMaster的單點問題 HBase中能夠啓動多個HMaster,經過Zookeeper的Master Election機制保證總有一個Master運行

Write-Ahead-Log ( WAL )

TB2usGadpXXXXcLXXXXXXXXXXXX_!!1576560244.gif

Region 定位

第一次讀取:

步驟1:讀取ZooKeeper中ROOT表的位置。
步驟2:讀取ROOT表中.META表的位置。
步驟3:讀取.META表中用戶表的位置。
步驟4:讀取數據。

若是已經讀取過一次,則root表和.META都會緩存到本地

則直接去用戶表的位置讀取數據

-ROOT- 表與 .META. 表

-ROOT- 表

-ROOT- 表包含 .META. 表所在的 region 列表,該表只會有一個 Region ;

Zookeeper 中記錄了 -ROOT- 表的 location 。

.META. 表

.META. 表包含全部的用戶空間 region 列表,以及
RegionServer 的服務器地址。

Hbase應用

什麼時候使用Hbase

  • 需對數據進行隨機讀操做或者隨機寫操做;
  • 大數據上高併發操做,好比每秒對PB級數據進行上千次操做;
  • 讀寫訪問均是很是簡單的操做。
相關文章
相關標籤/搜索