HBase 學習筆記

2022-04-01 00:17:54 字數 2075 閱讀 4391

1 簡介

1.1 官網

1.1.1

1.1.2 apache hbase™ is the hadoop database, a distributed, scalable, big data store. use apache hbase™ when you need random, realtime read/write access to your big data

1.2 應用場景

1.2.1

1.2.2

1.2.3

1.2.4

1.2.5

1.3 基於hdfs的分布式資料庫,提供對大資料實時、隨機、讀寫操作

1.3.1 mysql關係型、偏事務

1.3.2 hbase沒有關聯的操作,適合簡單的處理

1.4 特點

1.4.1 傳統sql資料庫字段新增比較麻煩,表設計比較固定死板

1.4.2 hbase欄位可以隨意擴充

1.4.2.1 建表不需要指定特定字段,只需要指定列族cf

1.4.2.2 插入資料時,列族中可以儲存任意多個列ck

1.4.3 不需要sql資料庫正規化,不需要拆表,全部放在一張大表中,當然也就不需要join了

1.4.4 hbase資料更新保留原始資料,歷史版本一直存在,kv中的value帶有版本號,通常是時間戳

1.4.5 通過表名--行健--列族--列名--版本 定位乙個字段

1.5 儲存

1.5.1 分布式儲存,需要把大表切開儲存,hbase是按照region切分儲存管理的

1.5.2 按照列族進行切分,某一列組的若干行切分為乙個region,資料量達到一定大小就切分

1.5.3 region的基本資訊儲存在regionserver上面儲存,regionserver的資料存放在hdfs上面,叫hfile

1.5.4 hfile肯定不是純文字的格式,純文字檢索可能會比較慢,hfile按照hbase自定義的格式儲存

1.5.5 所以regionserve最好也和datanode、nodemanager一樣在物理上面部署在一起,直接訪問本地資料,加快hbase速度

1.5.6 hmaster不儲存具體的region資料,hamster負責管理regionserver的狀態,負責regionserver的負載均衡,可以理解為相當於hbase定製的乙個nameserver

1.5.7 hmaster可以通過zk實現ha

1.6 查詢機制

1.6.1 hbase的meta表儲存了tblname_rkstart_rkend;hostnamelist

1.6.2 該錶為habse的系統表,由hbase自己維護

1.6.3 每個region都在meta表有一條記錄

1.6.4 meta表也可能是乙個大表,所以meta也和region的資訊一樣儲存在hdfs上面

1.6.5 同理,上面的資訊可能也很大,也會產生同樣的問題,meta的meta的資料仍然需要分布式儲存,所以hbase建立了二級索引,有兩個meta的索引表

1.6.6 理論上二級meta索引已經可以容納十億級別的資料量了

1.6.7 二級索引的表儲存在一台機器即可,這個表叫root表,root表的節點資訊儲存在zookeeper上面

1.6.8 定址過程:zk中獲取root節點--root節點獲取meta資訊表的region對應的節點--meta表中獲取資料具體儲存在哪個節點上面--再去獲取資料

1.6.9 regionserver的記憶體快取著最近查詢的熱資料,所以regionserver最好記憶體稍微大一點

2 hbase shell

2.1 略,參考筆記

3 hbase api

3.1 略,參考筆記

4 最佳實踐

4.1 hbase可以與es結合起來,將需要查詢的字段存到es中,es搜尋得到相關的rowkey之後再從hbase中快速查詢出來, 即將計算放到es中進行,這是乙個比較好的思路

4.2 行健的設計可以幫助更好的使用hbase,更快更方便的進行過濾查詢,比如時序資料庫的設計就是這個思路

Hbase 學習筆記 Hbase 概覽

hbase構建在 hdfs 之上,hbase內部管理的檔案全部儲存在hdfs 中 行鍵,table的主鍵,table中的記錄按照row key排序。型別為byte array 列簇,table在水平方向有乙個或者多個column family組成,乙個column family中可以由任意多個col...

Hbase學習筆記

1.table中行是按照row key的字典序排列的 2.在行的方向上分隔為多個region 3.hregion是hbase 中分布式儲存和負載均衡的最小單位,這表示不同的region可以分布在不同的regionserver上 當乙個region足夠大時,現在是256m 就會split,乙個regi...

HBase學習筆記

hbase簡介 1 hbase定義 hbase是一種分布式 面向列的開源資料庫。具有良好的擴充套件性 低寫入 查詢延遲的特點。2 hbase與傳統的關聯式資料庫的區別 hbase rdb 資料型別 簡單的,儲存為未經解釋的字串 豐富的資料型別和儲存方式 資料操作 只有簡單的插入 查詢 刪除和清空等 ...