HBase的基礎知識

1.HBase(NoSQL:不是關系型數據庫)的邏輯數據模型

HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。HBase利用Hadoop HDFS作為其文件存儲系統,利用Hadoop MapReduce來處理HBase中的海量數據,利用Zookeeper作為協調工具。

1.1 表(table),是存儲管理數據的。
1.2 行鍵(row key),類似于MySQL中的主鍵。
  行鍵是HBase表天然自帶的。
1.3 列族(column family),列的集合。
  HBase中列族是需要在定義表時指定的,列是在插入記錄時動態增加的。
  HBase表中的數據,每個列族單獨一個文件。
1.4 時間戳(timestamp),列(也稱作標簽、修飾符)的一個屬性。
  行鍵和列確定的單元格,可以存儲多個數據,每個數據含有時間戳屬性,數據具有版本特性。
  如果不指定時間戳或者版本,默認取最新的數據。
1.5 存儲的數據都是字節數組。
1.6 表中的數據是按照行鍵的順序物理存儲的。

2.HBase的物理數據模型

2.1 HBase是適合海量數據(如20PB,1024T=1P)的秒級簡單查詢的數據庫。
2.2 HBase表中的記錄,按照行鍵進行拆分, 拆分成一個個的region。
  許多個region存儲在region server(單獨的物理機器)中的。
  這樣,對表的操作轉化為對多臺region server的并行查詢

3.HBase的體系結構


3.1 HBase是主從式結構,HMaster、HRegionServer

?

Client 包含訪問hbase 的接口,client 維護著一些cache 來加快對hbase 的訪問,比如regione 的位置信息

Zookeeper 保證任何時候,集群中只有一個running master

      ?存貯所有Region 的尋址入口

      ?實時監控Region Server 的狀態,將Region server 的上線和下線信息,實時通知給Master

     ? ??存儲Hbase 的schema,包括有哪些table,每個table 有哪些column family

Master 可以啟動多個HMaster,通過Zookeeper的Master Election機制保證總有一個Master運行

      ?為Region server 分配region

      ?負責region server 的負載均衡

? ? ? ? ? ? ? ? 發現失效的region server 并重新分配其上的region

Region Server 維護Master 分配給它的region,處理對這些region 的IO請求

       ?負責切分在運行過程中變得過大的region

?

?

HBase中有兩張特殊的Table,-ROOT-和.META.

1、.META.:記錄了用戶表的Region信息,.META.可以有多個regoin

2、-ROOT-:記錄了.META.表的Region信息,-ROOT-只有一個region Zookeeper中記錄了-ROOT-表的location

Client訪問用戶數據之前需要首先訪問zookeeper,然后訪問-ROOT-表,接著訪問.META.表,最后才能找到用戶數據的位置去訪問

?

轉載于:https://www.cnblogs.com/ahu-lichang/p/6675640.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456846.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django 部署基礎【使用 Nginx + uWSGI 的方式來部署來 Django】

本文主要講解在 Linux 平臺下,使用 Nginx uWSGI 的方式來部署來 Django,這是目前比較主流的方式。當然你也可以使用 Gunicorn 代替 uWSGI,不過原理都是類似的,弄懂了其中一種,其它的方式理解起來問題也不會很大。 有很…

css的屬性是變量是怎么表達,CSS自定義屬性(變量)

Github上有個叫electron-api-demos的項目,看代碼的時候發現了這么一個css文件(variables.css)::root {--color: hsl(0,0%,22%);--color-subtle: hsl(0,0%,44%);--color-strong: hsl(0,0%,11%);--color-link: hsl(0,0%,22%);--color-border: hsl(0,0%,88%…

Exception in thread main java.lang.UnsupportedClassVersionError的另類解決辦法

最近在Linux虛擬機上跑在windows平臺上的eclipes打出來的jar包時報出Exception in thread “main” java.lang.UnsupportedClassVersionError的錯誤: 經過上網查詢了解到是因為自己Windows使用的是jdk1.8版本,而Linux使用的是jdk1.7版本,所…

Linux命令【第一篇】

1、創建一個目錄/data 記憶方法:英文make directorys縮寫后就是mkdir。 命令: mkdir /data 或 cd /;mkdir data #提示:使用分號可以在一行內分割兩個命令。 實踐過程: 方法一: [rootoldboy66 ~]# mkdir /data #查…

Jenkins + gitlab webhook實現自動化部署

1、先在Jenkins安裝插件Gitlab Hook Plugin 和Build Authorization Token Root Plugin;2.插件安裝完成后在任務里添加token3、在gitlab上添加鉤子4、點擊測試鉤子或push代碼再看Jenkins已經在構建了就說明成功了(也可以在瀏覽器直接執行這個URL&#xff…

多繼承以及MRO順序【super().的使用】

多繼承以及MRO順序 1. 單獨調用父類的方法 # codingutf-8print("******多繼承使用類名.__init__ 發生的狀態******") class Parent(object):def __init__(self, name):print(parent的init開始被調用)self.name nameprint(parent的init結束被調用)class Son1(Paren…

人工智能專業詞匯集

最近看到一篇關于AI專業詞匯總結的文章,感覺不錯,分享一下。 對應的詞匯項目地址為:https://github.com/jiqizhixin/Artificial-Intelligence-Terminology 本詞匯庫目前擁有的專業詞匯共計 500 個,主要為機器學習基礎概念和術語…

js 當前日期增加自然月

js 在日期不滿足的情況下就會自動加1個月,比如在當前時間為3月31號,傳入1,1兩個參數,預期結果為2月29日,但是結果輸出了3月2日。就是如果不滿就會溢出到下個月,后來看了api發現了setMonth有兩個方法&#x…

好雨云幫如何對接Git Server

前言 云幫目前支持對接GitLab、Gogs、Github,或者主流代碼托管平臺的公開項目,后期會考慮接入其他類型的Git服務。 私有云 GitLab是一個用于倉庫管理系統的開源項目,私有云服務里使用比較多的自建Git服務。 對接GitLab 通過應用市場進行安裝Gitlab 安裝G…

Python 生成requirement 使用requirements.txt

python項目中必須包含一個 requirements.txt 文件,用于記錄所有依賴包及其精確的版本號。以便新環境部署。requirements.txt可以通過pip命令自動生成和安裝生成requirements.txt文件 pip freeze > requirements.txt安裝requirements.txt依賴 pip install -r requ…

Source Insight上手教程

目錄Project的建立和工作區域同步查看定義查找引用查找調用Source Insight常用快捷鍵 目錄 最近剛參加工作,第一個任務就是查看項目的源碼,熟悉代碼結構。于是乎就簡單學習了Source Insight。在這里就轉載別人的文章當做自己的筆記,便于自己…

微信禁用右上角的分享按鈕,WeixinJSBridge API以及隱藏分享的子按鈕等菜單項

今天在做隱藏微信右上角的分享按鈕 百度查到的一串代碼&#xff0c;挺好用的 <!--禁用微信分享按鈕--><script>function onBridgeReady() {WeixinJSBridge.call(hideOptionMenu);}if (typeof WeixinJSBridge "undefined") {if (document.addEventListen…

python2.7無法使用pip(安裝easy_install)

python27和python36 共存時安裝pip方法&#xff0c;解決python27文件夾下沒有script文件方法 報錯&#xff1a; D:\PYTHON2.7>python ez_setup.py Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg Traceback (most recent call…

Codeforces 754E:Dasha and cyclic table

Codeforces 754E&#xff1a;Dasha and cyclic table 題目鏈接&#xff1a;http://codeforces.com/problemset/problem/754/E 題目大意&#xff1a;$A$矩陣&#xff08;$size(A)n \times m$&#xff0c;僅含a-z&#xff09;在整個平面做周期延拓&#xff0c;問$B$矩陣&#xff…

位運算中的左移和右移的計算詳解

最近在學習javaScrapt&#xff0c;在學到位運算符這部分的時候&#xff0c;突然發現看不懂書上的例子了。經過查找資料后&#xff0c;發現了一遍不錯的文章。分享一下&#xff1a; 正數的左移和右移 以3為例 3的二進制為 00000011 右移2位的時候將最右的11去掉左邊補00結果…

AC日記——字符串P型編碼 openjudge 1.7 31

31:字符串p型編碼 總時間限制: 1000ms內存限制: 65536kB描述給定一個完全由數字字符&#xff08;0,1,2,…,9&#xff09;構成的字符串str&#xff0c;請寫出str的p型編碼串。例如&#xff1a;字符串122344111可被描述為"1個1、2個2、1個3、2個4、3個1"&#xff0c;因…

javascript中的define用法

文章目錄1. AMD的由來2. AMD是什么3. AMD實例&#xff1a;如何定義一個模塊4. 匿名模塊5. 僅有一個參數的define6. Dojo中的AMD7. 結論最近由于工作需求只能快速學習JS&#xff0c;但在看代碼的時候發現許多東西都有疑問比如說代碼剛開始的define關鍵字的用法&#xff0c;剛好最…

解決:pip警告!DEPRECATION: The default format will switch to columns in the future.

pip警告&#xff01; DEPRECATION: The default format will switch to columns in the future. You can use --format(legacy|columns) (or define a format(legacy|columns) in your pip.conf under the [list] section) to disable this warning. pip升級到9.0.1后 查看pi…

PLSQL安裝配置

&#xff08;1&#xff09;解壓&#xff1a;plsql developer Oracle數據庫開發工具首先確保有oracle數據庫或者有oracle服務器&#xff0c;然后才能使用PLSQL Developer連接數據庫。&#xff08;2&#xff09;工具---首選項---連接----輸入OCI庫&#xff08;設置之后不用再裝or…

Mysql 學習筆記2

&#xff08;1&#xff09;MySQL查看表占用空間大小 //先進去MySQL自帶管理庫&#xff1a;information_schema //自己的數據庫&#xff1a;dbwww58com_kuchecarlib //自己的表&#xff1a;t_carmodelparamvalue mysql> use information_schema; Database changed mysql&g…