日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hbase的应用场景、原理及架构分析(转:https://blog.csdn.net/xiangxizhishi/article/details/75388971)

發(fā)布時(shí)間:2024/9/27 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hbase的应用场景、原理及架构分析(转:https://blog.csdn.net/xiangxizhishi/article/details/75388971) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Hbase概述

hbase是一個(gè)構(gòu)建在HDFS上的分布式列存儲系統(tǒng)。HBase是Apache Hadoop生態(tài)系統(tǒng)中的重要 一員,主要用于海量結(jié)構(gòu)化數(shù)據(jù)存儲。從邏輯上講,HBase將數(shù)據(jù)按照表、行和列進(jìn)行存儲。

如圖所示,Hbase構(gòu)建在HDFS之上,hadoop之下。其內(nèi)部管理的文件全部存儲在HDFS中。與HDFS相比兩者都具有良好的容錯(cuò)性和擴(kuò)展性,都可以 擴(kuò)展到成百上千個(gè)節(jié)點(diǎn)。但HDFS適合批處理場景,不支持?jǐn)?shù)據(jù)隨機(jī)查找,不適合增量數(shù)據(jù)處理且不支持?jǐn)?shù)據(jù)更新。

Hbase是列存儲的非關(guān)系數(shù)據(jù)庫。傳統(tǒng)數(shù)據(jù)庫MySQL等,數(shù)據(jù)是按行存儲的。其沒有索引的查詢將消耗大量I/O 并且建立索引和物化視圖需要花費(fèi)大量時(shí)間和資源。因此,為了滿足面向查詢的需求,數(shù)據(jù)庫必須被大量膨脹才能滿 足性能要求。

Hbase數(shù)據(jù)是按列存儲-每一列單獨(dú)存放。列存儲的優(yōu)點(diǎn)是數(shù)據(jù)即是索引。訪問查詢涉及的列-大量降低系統(tǒng)I/O 。并且每一列由一個(gè)線索來處理,可以實(shí)現(xiàn)查詢的并發(fā)處理。基于Hbase數(shù)據(jù)類型一致性,可以實(shí)現(xiàn)數(shù)據(jù)庫的高效壓縮。

HBase數(shù)據(jù)模型

HBase是基于Google BigTable模型開發(fā)的, 典型的key/value系統(tǒng)。一個(gè)Row key對應(yīng)很多Column Family,Column Family中有很多Column。其中,保存了不同時(shí)間戳的數(shù)據(jù)。

如圖所示,Rowkey cutting對應(yīng)列簇info和roles。其中,info中有key-value對hight-9ft,state-CA。更清晰的結(jié)構(gòu)如下圖所:

Hbase的所有操作均是基于rowkey的。支持CRUD(Create、Read、Update和Delete)和 Scan操作。 包括單行操作Put 、Get、Scan。多行操作包括Scan和MultiPut。但沒有內(nèi)置join操作,可使用MapReduce解決。

HBase物理模型

Hbase的Table中的所有行都按照row key的字典序排列。Table 在行的方向上分割為多個(gè)Region。、Region按大小分割的,每個(gè)表開始只有一個(gè)region,隨 著數(shù)據(jù)增多,region不斷增大,當(dāng)增大到一個(gè)閥值的時(shí)候, region就會(huì)等分會(huì)兩個(gè)新的region,之后會(huì)有越來越多的 region。

Region是HBase中分布式存儲和負(fù)載均衡的最小單元。 不同Region分布到不同RegionServer上。

Region雖然是分布式存儲的最小單元,但并不是存儲 的最小單元。Region由一個(gè)或者多個(gè)Store組成,每個(gè)store保存一個(gè) columns family。每個(gè)Strore又由一個(gè)memStore和0至多個(gè)StoreFile組成。memStore存儲在內(nèi)存中,StoreFile存儲在HDFS上。

HBase基本架構(gòu)

HBase構(gòu)建在HDFS之上,其組件包括 Client、zookeeper、HDFS、Hmaster以及HRegionServer。Client包含訪問HBase的接口,并維護(hù)cache來加快對HBase的訪問。Zookeeper用來保證任何時(shí)候,集群中只有一個(gè)master,存貯所有Region的尋址入口以及實(shí)時(shí)監(jiān)控Region server的上線和下線信息。并實(shí)時(shí)通知給Master存儲HBase的schema和table元數(shù)據(jù)。HMaster負(fù)責(zé)為Region server分配region和Region server的負(fù)載均衡。如果發(fā)現(xiàn)失效的Region server并重新分配其上的region。同時(shí),管理用戶對table的增刪改查操作。Region Server 負(fù)責(zé)維護(hù)region,處理對這些region的IO請求并且切分在運(yùn)行過程中變得過大的region。

HBase 依賴ZooKeeper,默認(rèn)情況下,HBase 管理ZooKeeper 實(shí)例。比如, 啟動(dòng)或者停止ZooKeeper。Master與RegionServers 啟動(dòng)時(shí)會(huì)向ZooKeeper注冊。因此,Zookeeper的引入使得 Master不再是單點(diǎn)故障。

Client每次寫數(shù)據(jù)庫之前,都會(huì)首先血Hlog日志。記錄寫操作。如果不做日志記錄,一旦發(fā)生故障,操作將不可恢復(fù)。HMaster一旦故障,Zookeeper將重新選擇一個(gè)新的Master 。無Master過程中,數(shù)據(jù)讀取仍照常進(jìn)行。但是,無master過程中,region切分、負(fù)載均衡等無法進(jìn)行。RegionServer出現(xiàn)故障的處理原理是定時(shí)向Zookeeper匯報(bào)心跳,如果一旦時(shí) 間內(nèi)未出現(xiàn)心跳HMaster將該RegionServer上的Region重新分配到其他RegionServer上。失效服務(wù)器上“預(yù)寫”日志由主服務(wù)器進(jìn)行分割并派送給新的 RegionServer 。Zookeeper是一個(gè)可靠地服務(wù),一般配置3或5個(gè)Zookeeper實(shí)例。

尋找RegionServer定位的順序是ZooKeeper –ROOT-(單Region) -.META. -用戶表 。如上圖所示。-ROOT- 表包含.META.表所在的region列表,該表只會(huì)有一 個(gè)Region。 Zookeeper中記錄了-ROOT-表的location。 .META. 表包含所有的用戶空間region列表,以及 RegionServer的服務(wù)器地址。

HBase應(yīng)用舉例

Hbase適合需對數(shù)據(jù)進(jìn)行隨機(jī)讀操作或者隨機(jī)寫操作、大數(shù)據(jù)上高并發(fā)操作,比如每秒對PB級數(shù)據(jù)進(jìn)行上千次操作以及讀寫訪問均是非常簡單的操作。

淘寶指數(shù)是Hbase在淘寶的一個(gè)典型應(yīng)用。交易歷史紀(jì)錄查詢很適合用Hbase作為底層數(shù)據(jù)庫。

總結(jié)

以上是生活随笔為你收集整理的Hbase的应用场景、原理及架构分析(转:https://blog.csdn.net/xiangxizhishi/article/details/75388971)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。