新聞中心
HBase是一個分布式型的NoSQL數(shù)據(jù)庫,經(jīng)常用于大規(guī)模數(shù)據(jù)處理,例如數(shù)據(jù)存儲,實時數(shù)據(jù)分析和處理等。HBase采用Hadoop文件系統(tǒng)(HDFS)作為底層存儲,通過ZooKeeper進(jìn)行協(xié)調(diào)管理,可以通過對HBase數(shù)據(jù)庫進(jìn)行適當(dāng)?shù)墓芾?,提高系統(tǒng)的性能和可靠性。本文將介紹HBase數(shù)據(jù)庫的管理指南。

一、HBase環(huán)境搭建
需要完成Hadoop集群的部署,因為HBase需要運行在Hadoop的基礎(chǔ)之上。之后,需要下載并安裝HBase軟件包,配置文件包括hbase-env.sh、hbase-site.xml和regionservers等,需要根據(jù)實際需求進(jìn)行修改。
二、HBase的數(shù)據(jù)模型
HBase的數(shù)據(jù)模型是基于列族(column family)和行鍵(row key)的。列族是數(shù)據(jù)庫表的列,行鍵是表中的行。HBase的數(shù)據(jù)模型與關(guān)系數(shù)據(jù)庫不同,它采用稀疏矩陣的方式存儲數(shù)據(jù),一張表不用都具有相同的列。同時,HBase還支持多版本數(shù)據(jù)存儲,每次更新數(shù)據(jù)時都會生成一個新的版本。
三、HBase數(shù)據(jù)庫數(shù)據(jù)的管理
1. 表的創(chuàng)建和刪除
在HBase中創(chuàng)建表需要指定表的名稱、列族的名稱以及其他參數(shù),例如是否預(yù)分區(qū)等。通過HBase Shell可以完成這個操作:
$ create ‘test’, ‘cf1’
刪除表同樣也需要使用HBase Shell:
$ disable ‘test’
$ drop ‘test’
2. 行的創(chuàng)建、查詢、更新和刪除
行是HBase中的基本存儲單位,可以使用put和get命令分別進(jìn)行行的創(chuàng)建和查詢:
$ put ‘test’, ‘row1’, ‘cf1:qual1’, ‘value1’
$ get ‘test’, ‘row1’
同樣地,可以使用delete命令刪除行:
$ delete ‘test’, ‘row1’
3. 增量備份和全量備份
對于HBase數(shù)據(jù)庫的備份,可以采用增量備份或全量備份的方式進(jìn)行。增量備份是指備份數(shù)據(jù)庫發(fā)生變化的那些數(shù)據(jù)塊,可以通過命令來手動備份:
$ hbase backup incremental -backup_root hdfs://backup -set backup_id=19
全量備份則是備份整個HBase數(shù)據(jù)庫,也可以通過命令手動備份:
$ hbase backup create full hdfs://backup
四、HBase數(shù)據(jù)庫的優(yōu)化
為了提高HBase數(shù)據(jù)庫的性能,可以采用以下措施:
1. 增加Region服務(wù)器的數(shù)量
Region服務(wù)器是HBase負(fù)責(zé)存儲數(shù)據(jù)的實例,增加Region服務(wù)器的數(shù)量可以提高HBase系統(tǒng)的并發(fā)能力和容錯性。
2. 預(yù)分區(qū)表
預(yù)分區(qū)表是指在創(chuàng)建表時,將表分成多個區(qū)域(Region),每個區(qū)域可能包含不同的數(shù)據(jù)。這樣可以避免單個Region的數(shù)據(jù)量過大,提高查詢速度和負(fù)載均衡。
3. Rowkey的設(shè)計
Rowkey是HBase中行的唯一標(biāo)識符,好的Rowkey設(shè)計可以提高查詢速度和負(fù)載均衡。
4. 開啟壓縮
HBase數(shù)據(jù)庫支持在寫入和讀取數(shù)據(jù)時使用壓縮算法,可以減少磁盤的使用,提高讀寫性能。
五、
本文介紹了HBase數(shù)據(jù)庫的管理指南,包括環(huán)境搭建、數(shù)據(jù)模型、數(shù)據(jù)管理、數(shù)據(jù)庫優(yōu)化等內(nèi)容。通過采用適當(dāng)?shù)墓芾砗蛢?yōu)化措施,可以提高HBase數(shù)據(jù)庫的性能和可靠性,有效處理大規(guī)模數(shù)據(jù)處理和實時數(shù)據(jù)分析和處理等任務(wù)。
相關(guān)問題拓展閱讀:
- HBASE 1.0
HBASE 1.0
前身:BigTable
網(wǎng)頁搜索:
google分布式存儲系統(tǒng)BigTable依賴GFS
Hbase(bigtable的開源實現(xiàn)): 高可靠、高性能、面向列、可伸縮
存儲結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù)
優(yōu)點:
水平可擴(kuò)展性特別好:
依賴:
文件存儲系統(tǒng):HDFS
海量數(shù)據(jù)處理:MapReduce
協(xié)同管理服務(wù):Zookeeper
滿足了:大數(shù)據(jù)量的實時計算
數(shù)據(jù)類型:
RDBMS:關(guān)系數(shù)據(jù)模型、多種數(shù)據(jù)類型
Hbase:
數(shù)據(jù)操作:
存儲模式:
索引:
數(shù)據(jù)維護(hù):
可伸縮性:
縱向擴(kuò)展:
水平擴(kuò)展:
Hbase的訪問接口:
拆局 JAVA API
shell
thrift Gateway
restful Gateway
SQL接口:pig編寫類sql hive用hivesql訪問Hbase
Hbase的數(shù)據(jù)類型:
列限定符
每個值都是未解釋的bytes
一個行可以有一個行鍵和多列
表由列族組成
Hbase數(shù)據(jù)模型:
列族支持動態(tài)擴(kuò)展、保留舊版本(HDFS只能追加數(shù)據(jù))
基礎(chǔ)元素:
行鍵 : rowkey
列族
列限定敗燃符
單元格 (時間戳概念、對應(yīng)數(shù)據(jù)版本)
坐標(biāo)概念:
四維定位:行鍵、列族、列限定符、時間戳
稀疏表旅枯讓
HBASE:面向列的存儲:高數(shù)據(jù)壓縮率、分析便捷
RDBMS :面向行存儲,事務(wù)性操作(記錄完整)、不便于分析(需要全表掃描)
4.3 HBASE 的實現(xiàn)原理
4.3.1 庫函數(shù) 、master服務(wù)器、region服務(wù)器
Master服務(wù)器:
分區(qū)信息進(jìn)行維護(hù)和管理
維護(hù)region服務(wù)器列表
確認(rèn)當(dāng)前工作的region服務(wù)器
負(fù)責(zé)對region進(jìn)行分配和負(fù)載平衡
對表的增刪改查
region服務(wù)器:
客戶端不依賴于Master獲取位置信息
用戶數(shù)據(jù)的存儲和管理
Region服務(wù)器個region —–Store是一個列族—-每個列族就是一個Hfile—-所有region公用1個Hlog
寫數(shù)據(jù)流程:Region服務(wù)器—寫緩存Memstore—寫日志(Hlog)
讀數(shù)據(jù)流程:Region服務(wù)器-讀緩存Memstore(最新數(shù)據(jù))—-StoreFile
緩存刷新:周期性將緩存內(nèi)容刷寫到Storefile 清空緩存—Hlog寫入標(biāo)記
每次刷寫會生成新的StoreFile 每個Store包含多個StoreFile
每個Region服務(wù)器都有一個自己的Hlog,將啟動檢查確認(rèn)緩存刷新是否有新的內(nèi)容需要刷寫,發(fā)現(xiàn)則刷寫新的storefile,完成后刪除Hlog,開始對外提供服務(wù)
Storefile的合并,storefile 的數(shù)量達(dá)到閾值后,會進(jìn)行合并。當(dāng)Storefile超過大小閾值則會觸發(fā)Region的分裂
4.4 Hlog的工作原理
Zookeeper負(fù)責(zé)監(jiān)聽region服務(wù)器,由master處理故障,通過故障服務(wù)器的Hlog恢復(fù),按region切分Hlog,將region和對應(yīng)的Hlog分配到新的region服務(wù)器上
一個HBASE表會被劃分成多個Region(1G-2G 取決于服務(wù)器性能)
同一個region不會被拆分到不同服務(wù)器上
Region的尋找:
Meta表:regionID 服務(wù)器ID 存儲元數(shù)據(jù)
Root表:只有一個region
三級尋址:
zookeeper文件—root表-多個meta表–多個用戶數(shù)據(jù)表
客戶端會有Hbase三層尋址的緩存,調(diào)用訪問Hbase的接口,緩存失效后,再次尋址
zookeeper決定master服務(wù)器,確保只有一個master
4.5 Hbase的應(yīng)用方案
性能優(yōu)化:
1)時間靠近存放—-將時間戳引入行鍵,使用Long.max-時間戳進(jìn)行排序
2)提升讀寫性能,創(chuàng)建表時設(shè)置HcloumnDescriptor.setMemory=true,會將表放入內(nèi)存的緩存中
3)節(jié)省存儲·空間—-設(shè)置更大版本數(shù)、保存最新版的數(shù)據(jù),將更大版本參數(shù)設(shè)置為1
4)timetolive參數(shù),會將過期數(shù)據(jù)自動清空
檢測Hbase性能:
Maste-status(web瀏覽器查詢)
ganglia
OpenTSDB
Armbari
sql 查詢HBASE
1)hive整合hbase
2)Phoenix
Hbase 二級索引 (輔助索引)
默認(rèn)只支持對rowkey進(jìn)行索引
Hbase行訪問:
1)單行鍵訪問
2)確定起點和終點訪問區(qū)間數(shù)據(jù)
3)全表掃描
二級索引樣例:
Hindex Hbase+redis Solr+ Hbase
二級索引的機(jī)制:
Hbase Coprocessor
endpoint —存儲過程
observer—-觸發(fā)器
通過Observer監(jiān)測數(shù)據(jù)插入動作,同步寫入索引表,完成對表和列的索引
Hbase 主表 索引表
4.6 HBASE的shell命令
三種部署模式:單機(jī) 偽分布式 分布式
HDFS
創(chuàng)建表
create table, F1, F2, F3
list table
每次只能為1行的1列添加數(shù)據(jù)
put table R1,R1:C1 ,“1,2,3”
scan table R1,{column=’R1:C1′}
get table
刪除表:
disable table +drop table
4.7 JAVA API +HBASE
關(guān)于hbase數(shù)據(jù)庫管理的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享文章:HBase數(shù)據(jù)庫管理指南(hbase數(shù)據(jù)庫管理)
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/copsgdd.html


咨詢
建站咨詢
