Hbase原理系列 成員 李孟 新浪部落格

2021-10-10 12:08:25 字數 2672 閱讀 6636

安裝url:hbase集群部署

一.簡介

hbase是乙個高可靠性、高效能、面向列、可伸縮、稀疏的分布式儲存系統,利用hbase技術可在廉價pc server上搭建起大規模結構化儲存集群。

hbase的目標是儲存並處理大型的資料,更具體來說是僅需使用普通的硬體配置,就能夠處理由成千上萬的行和列所組成的大型資料。

hbase是google bigtable的開源實現,但是也有很多不同之處。比如:google bigtable利用gfs作為其檔案儲存系統,hbase利用hadoop hdfs作為其檔案儲存系統;google執行mapreduce來處理bigtable中的海量資料,hbase同樣利用hadoop mapreduce來處理hbase中的海量資料;google bigtable利用chubby作為協同服務,hbase利用zookeeper作為對應。

二.與傳統資料庫的對比

1、傳統資料庫遇到的問題:

2、hbase優勢:

三.角色

1.乙個或者多個主節點,hmaster

2.多個從節點,hregionserver

四.資料模型

4.1.row key

與nosql資料庫們一樣,row key是用來檢索記錄的主鍵。訪問hbase table中的行,只有三種方式:

row key行鍵 (row key)可以是任意字串(最大長度 是 64kb,實際應用中長度一般為 10-100bytes),在hbase內部,row key儲存為位元組陣列。儲存時,資料按照row key的字典序(byte order)排序儲存。設計key時,要充分排序儲存這個特性,將經常一起讀取的行儲存放到一起。(位置相關性)

4.2.columns family

列簇 :hbase表中的每個列,都歸屬於某個列族。列族是表的schema的一部 分(而列不是),必須在使用表之前定義。列名都以列族作為字首。例如 courses:history,courses:math都屬於courses 這個列族。

4.3.cell

由 唯一確定的單元。cell中 的資料是沒有型別的,全部是位元組碼形式存貯。

關鍵字:無型別、位元組碼

4.4.time stamp

hbase 中通過rowkey和columns確定的為乙個存貯單元稱為cell。每個 cell都儲存 著同乙份資料的多個版本。版本通過時間戳來索引。時間戳的型別是 64位整型。時間戳可以由hbase(在資料寫入時自動 )賦值,此時時間戳是精確到毫秒 的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程式要避免資料版 本衝突,就必須自己生成具有唯一性的時間戳。每個 cell中,不同版本的資料按照時間倒序排序,即最新的資料排在最前面。

為了避免資料存在過多版本造成的的管理 (包括存貯和索引)負擔,hbase提供 了兩種資料版本**方式。一是儲存資料的最後n個版本,二是儲存最近一段 時間內的版本(比如最近七天)。使用者可以針對每個列族進行設定。

4.5.region

region的概念和關係型資料庫的分割槽或者分片差不多。

hbase會將乙個大表的資料基於rowkey的不同範圍分配到不通的region中,每個region負責一定範圍的資料訪問和儲存。這樣即使是一張巨大的表,由於被切割到不通的region,訪問起來的時延也很低。

四.zookeeper

1.儲存hmaster的位址和backup-master位址

hmaster:

管理hregionserver

做增刪改查表的節點

管理hregionserver中的表分配

2.儲存表.meta.的位址

hbase預設的根表,檢索表。

3.hregionserver列表

表的增刪改查資料。

和hdfs互動,訪問資料。

4.通過zoopkeeper來保證集群中只有1個master在執行,如果master異常,會通過競爭機制產生新的master提供服務

五.hmaster

為regionserver分配region

維護整個集群的負載均衡

維護集群的元資料資訊

發現失效的region,並將失效的region分配到正常的regionserver上

當regionsever失效的時候,協調對應hlog的拆分

六. hregionserver

管理master為其分配的region

處理來自客戶端的讀寫請求

負責和底層hdfs的互動,儲存資料到hdfs

負責region變大以後的拆分

負責storefile的合併工作

七.hdfs

hdfs為hbase提供最終的底層資料儲存服務,同時為hbase提供高可用(hlog儲存在hdfs)的支援,具體功能概括如下:

提供元資料和表資料的底層分布式儲存服務

資料多副本,保證的高可靠和高可用性

八.使用場景

hbase是乙個通過廉價pc機器集群來儲存海量資料的分布式資料庫解決方案。它比較適合的場景概括如下:

是巨量大(百t、pb級別)

查詢簡單(基於rowkey或者rowkey範圍查詢)

不涉及到複雜的關聯

有幾個典型的場景特別適合使用hbase來儲存:

海量訂單流水資料(長久儲存)

交易記錄

資料庫歷史資料

hue介紹系列02 李孟 新浪部落格

配置cd etc hue conf vi hue.ini desktop default hdfs superuser hadoop hdfs管理使用者 desktop http host 10.10.41.123 hue web server所在主機 ip desktop http port 80...

資料倉儲系列 簡介 李孟 新浪部落格

打算做資料倉儲系列,可能會時間上跨度很大,畢竟現在專案比較繁忙。一.資料倉儲定義 資料倉儲,英文名稱為data warehouse,可簡寫為dw或dwh。資料倉儲,是為企業所有級別的決策制定過程,提供所有型別資料支援的戰略集合。它出於分析性報告和決策支援目的而建立。為需要業務智慧型的企業,提供指導業...

資料倉儲系列 建模 李孟 新浪部落格

一.資料倉儲的資料模型 1.系統記錄域 system of record 這部分是主要的資料倉儲業務資料儲存區,資料模型在這裡保證了資料的一致性。2.內部管理域 housekeeping 這部分主要儲存資料倉儲用於內部管理的元資料,資料模型在這裡能夠幫助進行統一的元資料的管理。3.彙總域 summa...