深入淺出系列Hbase之原理及概念(1)

2021-10-07 11:22:52 字數 2104 閱讀 5082

我們先來看看官網是如何介紹hbase元件,其官網:

apache hbase™是hadoop資料庫,這是乙個分布式可擴充套件的大資料儲存。

當您需要對大資料進行

隨機

實時的讀/寫訪問時,請使用apache hbase™。該項目的目標是在商品硬體群集上託管超大型表-數十億行x數百萬列。apache hbase是乙個開源的,分布式的,版本化的,非關係型資料庫,其仿照google的bigtable: chang等人的「 結構化資料的分布式儲存系統 」。正如bigtable利用google檔案系統提供的分布式資料儲存一樣,apache hbase在hadoop和hdfs之上提供類似於bigtable的功能。

關於特性:

注:hbase的regionserver相當於hadoop的datanode,可以進行水平擴充套件

注:不會發生髒資料的讀或寫的操作

注:簡單的api還是比較好些,但是很多的api是非常難寫

注:塊快取主要用於讀的場景

rowkey 每一條資料的主鍵

column family 列族/簇 將表進行 橫向切割 簡稱cf    生產上列族不要超多3個

column 列 是屬於乙個列族

version number 型別是long 預設是系統時間戳 使用者也可以自定義

value 列對應的值

直接把概念列在這,總感覺乾巴巴的,那麼接下來通過一張圖來進一步的介紹

上面的圖表示

1、一行row資料是可以包含乙個或者多個cf(列族),但是並不推薦一張表設計時cf>3

2、column表示列,它是屬於乙個列族,乙個cf是包含多個column(列)的

它是一段資料的集合,從資料的物理層面來說,所有的資料都是存放在region裡的,而region是由regionserver管理的。

通過上圖,我們可以清楚的知道乙個regionserver管理多個region,乙個region又管理著乙個或多個的cf,而我們再結合之前的圖,又明白乙個cf包含著多個column,至此對他們之間的關係又有了稍微清晰的認知。

ok,接下來繼續看下面兩張圖

在資料的邏輯概念來說,表是按照rowkey範圍進行劃分為不同的region, 而region按照不同的列族劃分不同的store,每個store中包含乙個memstore和0個或多個storefile

建表時預設只有乙個region,如果指定split key,就會有多個region。 當表的行數超過閾值,表就水平分割2個region, 可以把region理解為子表。

不同的region會被hmaster分配到合適的hregionserver來管理。比如乙個表切分成很多的region,不代表很多的region只在乙個機器節點上,假如一張表切分成3個region,有可能region1在第一台機器節點上,region2在第二台上,region3在第三台上,當select進行查詢的時候,這樣便可以充分利用三颱機器的io(磁碟/網路)。另外不同的region是儲存在不同的store中的。

大家也看到memstore使用紅色標註,這是hbase調優的重點,這裡暫時先不說,後面會重點進行介紹。

資料是以kv結構進行儲存,每個kv只儲存乙個單元格的cell資料,而且不同的cf資料是儲存在不同的file裡

深入淺出Docker系列

深入淺出系列 深入淺出docker 一 docker核心技術預覽 深入淺出docker 二 docker命令列探秘 深入淺出docker 三 docker開源之路 深入淺出docker 四 docker的整合測試部署之道 深入淺出docker 五 基於fig搭建開發環境 原始碼分析系列 docker...

深入淺出之STL

c stl 標準模板庫 是一套功能強大的 c 模板類,提供了通用的模板類和函式,這些模板類和函式可以實現多種流行和常用的演算法和資料結構,如向量 鍊錶 佇列 棧。c 標準模板庫的核心包括以下三個元件 元件描述 容器 containers 容器是用來管理某一類物件的集合。c 提供了各種不同型別的容器,...

Cocoa 深入淺出Cocoa系列

深入淺出cocoa系列 羅朝輝 本文遵循 署名 非商業用途 保持一致 創作公用協議 這是本人在研究 cocoa 開發過程中寫過的一些文章,涵蓋 runtime,class,message,多執行緒,core data,網路,framework,plugin等各方面,還比較成系列,所以整理出來,貼在這...