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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

Hbase概述

hbase是一個構建在HDFS上的分布式列存儲系統。HBase是Apache Hadoop生態系統中的重要 一員,主要用于海量結構化數據存儲。從邏輯上講,HBase將數據按照表、行和列進行存儲。

如圖所示,Hbase構建在HDFS之上,hadoop之下。其內部管理的文件全部存儲在HDFS中。與HDFS相比兩者都具有良好的容錯性和擴展性,都可以 擴展到成百上千個節點。但HDFS適合批處理場景,不支持數據隨機查找,不適合增量數據處理且不支持數據更新。

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

Hbase數據是按列存儲-每一列單獨存放。列存儲的優點是數據即是索引。訪問查詢涉及的列-大量降低系統I/O 。并且每一列由一個線索來處理,可以實現查詢的并發處理。基于Hbase數據類型一致性,可以實現數據庫的高效壓縮。

HBase數據模型

HBase是基于Google BigTable模型開發的, 典型的key/value系統。一個Row key對應很多Column Family,Column Family中有很多Column。其中,保存了不同時間戳的數據。

如圖所示,Rowkey cutting對應列簇info和roles。其中,info中有key-value對hight-9ft,state-CA。更清晰的結構如下圖所:

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

HBase物理模型

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

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

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

HBase基本架構

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

HBase 依賴ZooKeeper,默認情況下,HBase 管理ZooKeeper 實例。比如, 啟動或者停止ZooKeeper。Master與RegionServers 啟動時會向ZooKeeper注冊。因此,Zookeeper的引入使得 Master不再是單點故障。

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

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

HBase應用舉例

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

淘寶指數是Hbase在淘寶的一個典型應用。交易歷史紀錄查詢很適合用Hbase作為底層數據庫。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。