hbase 概念

在hbase里面有幾個通俗的名稱會經常出現

1)Hregion = region

2)Hregionserver = regionserver

3)Hmaster = master

4)Hmamstore = memstore

5)Hfile = storeFile

?

1、什么是hbase?

1)它是基于稀疏的、分布式的、持久化的、多維有序映射,它基于行健、列簇、時間戳建立索引

2)構建在hdfs之上的分布式列式鍵值存儲系統,hbase內部管理的文件存儲在hdfs中。

??

2、有什么特點?

1)不介意數據類型,允許動態的、靈活的數據模型,并不限制存儲數據的種類。因此他可以自如的存儲結構化和半結構化的數據。

2)它不要sql語音,不強調數據之間的關系

3)它不允許跨行的事物,可以在一行的某一列存儲一個整數,而在另一行的同一列存儲一個字符串

4)它被設計在一個服務器集群上運行,而不是單臺服務器。這就意味著是一種強大的、可擴展的數據使用方式。

?

3、列式存儲

列式存儲的基礎:對于特定的查詢,不是所有的值都是必須的。

1)以列為單位聚合數據,然后將列值順序的存入磁盤

2)數據類型一致,數據特征相似,更利于壓縮

3)大量降低系統I/O

?

?

4、HBASE特性

1)容量巨大:單表可以有百億行,百萬列

2)面向列

3)稀疏性:空值不占用存儲空間

4)擴展性:由hdfs決定,熱擴展

5)高可用性:WAL和Replication機制;hdfs;zookeeper

6)共性能:LSM數據結構;Rowkey有序排列

7)無模式

8)數據多版本

9)數據類型單一

10)TTL

?

5、client

1)包含訪問hbase的接口,并維護cache來加快對hbase的訪問

2)通過rpc機制和master,region server通信

?

6、zookeeper

1)保證任何時候,集群中只有一個master

2)存儲所有region的尋址入口

3)實時監控region server的上下線信息。并通知給master

4)存儲hbase元數據信息

5)hbase中可以啟動多個Hmaster,通過zookeeper的master election機制保證總有一個master運行

?

7、HMaster主要負責:table、region管理工作

1)管理用戶對table的增刪改查

2)管理regionserver的負載均衡,跳轉region分布

3)在region分裂后,負責新region的分配

4)在regionserver死機后,負責失效regionserver上的region遷移

?

(由于master只維護表和region的元數據,而不參與表數據IO的過程,master下線僅導致所有元數據的修改被凍結(無法創建刪除表,無法修改表的schema,無法進行region的負載均衡,無法處理region上下線,無法進行region的合并,唯一例外的是region的split可以正常進行,因為只有region server參與),表的數據讀寫還可以正常進行。

因此master下線短時間內對整個hbase集群沒有影響。)

?

8、regionserver:主要負責響應用戶I/O請求,向hdfs文件系統中讀寫數據

1)管理了一系列Hregion對象,每個Hregion對應了table中的region

2)Hregion由多個Hstore組成,每個Hstore對應了table中的一個column Family的存儲

每個column Family其實就是一個集中的存儲單位,簡稱Hstore

3)regionserver維護region,處理對這些region的IO請求

4)regionserver負責切分在運行過程中變得過大的region

5)regionserver提供行級鎖

?

注:

1)Hregionserver:Hregion:Hstore = Column Family

2)Hstore:

- memStore:用戶首先先寫入MemStore。(flush操作)

- StoreFile:Hfile(compact合并,split操作)

3)hbase只有增加數據,所有更新和刪除都是在compact過程中進行的。

4)用戶寫操作只要寫入內存就可以立即返回,保證I/O高性能

5)同一臺rs上的所有region共享相同的Hlog Files

6)每個update(或者說edit)都會被寫到log,當通知客戶端成功后,rs把數據再加載到內存中。

?

9、region是什么?

1)region按大小分割的,每個表開始只有一個region,隨著數據增多,region不斷增大,當增大到一個閥值的時候,region就會等分兩個新的region,只會就會越來越多。

2)本質上是以行鍵排序的連續存儲的區間

3)region最佳大小:1GB~2GB

4)regionserver:10~1000個region

5)不同的region分布到不同regionserver上

6)每個Hregion保存某段連續的數據,從開始主鍵(startRow)到結束主鍵(endRow),通過Hregion從Hadoop的分布式文件系統上數據

?

region雖然是分布存儲的最小單位,但并不是存儲的最小單位

1)一個region由一個或者多個store組成,每個store保存一個 columns family

2)每個store又由一個memstore和0個至多個storeFile組成

3)memstore存儲在內存中,storeFile存儲在hdfs上

?

?

10、Hstore是什么?

Hstore:Hstore存儲是Hbase存儲的核心,由memstore和storeFile組成。

1)Hmemcache:內存中的緩存,保存著最近更新的數據,如果Hmemcache沒有數據,將從hstores獲取磁盤上的數據,每個列簇會有一個hstore集合,每個集合包含多個Hstorefiles文件(b+數結構)

2)Hregion定期調用flushcache()緩存里的內容寫入到文件中,每次調用產生一個新的文件Hstorefile文件,從一個hstore或數據會訪問所有的Hstotefile,很耗時,hstore.compact可以完成小文件到達文件的合并

?

11、Hlog是什么?

磁盤上的操作記錄文件,記錄這所有的更新操作,數據寫入Hlog后,commit()調用才會返回給客戶端。

數據的更新操作最先被記錄在Hmemcache和Hlog中

?

12、Row key

行鍵,table的主鍵,Table中的記錄按照Row key排序。類型為Byte array

1)不宜過長

2)分布均勻

?

13、Column Family

列族,table水平方向有一個或者多個Column Family組成,一個Column Family中可以由任意多個Column組成

?

14、Cloumn

列 格式為:familyName:columnName

列名稱是編碼在cell中的

不同的cell可以擁有不同的列

?

15、Version Number

版本號。默認值是時間戳。類型為long

?

16、Value(Cell)

具體的值。類型為Byte array

?

轉載于:https://www.cnblogs.com/gentlemanhai/p/10354550.html

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

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

相關文章

beta沖刺第三天

團隊成員 鄭西坤 031602542 (隊長) 陳俊杰 031602504陳順興 031602505張勝男 031602540廖鈺萍 031602323雷光游 031602319吳志鴻 0316206341.昨天的困難 陳順興:理解別人的代碼 廖鈺萍: 吳志鴻:無 雷光游: …

多線程詳解

1. 進程與線程有那些區別和聯系?   每個進程至少需要一個線程。 進程由兩部分構成:進程內核對象,地址空間。線程也由兩部分組成:線程內核對象,操作系統用它來對線程實施管理。線程堆棧,用于維…

AirPods的自動連接配對原理

首次連接 打開裝有 AirPods 的充電盒,并將它放在 iPhone 旁邊。此時你的 iPhone 上將出現設置動畫。輕點「連接」,然后輕點「完成」。 就這么簡單,而且會自動設置,實現與已使用同一 Apple ID 登錄 iCloud 的任一支持設備搭配使用…

Linux chmod命令

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 Linux/Unix 的文件調用權限分為三級 : 文件擁有者、群組、其他。利用 chmod 可以藉以控制文件如何被他人所調用。 使用權限 : 所有使用…

模塊化

我那進了"模塊化研究"小組.所以嘞.研究模塊化以及如何讓項目的模塊化更加合理和高效是我們小組的主要目的.首先,在實行模塊化之前,得先鞏固模塊化開發的理論基礎,因為理論是實踐的基礎。只有這樣,在過程中理論與實踐相結合,才有可能達到最滿意…

1566:基礎練習 十六進制轉八進制

題目地址&#xff1a;https://acmore.cc/problem/LOCAL/1566 1 #include <iostream>2 #include <string>3 4 using namespace std;5 6 string HexToBin(string s) //16進制轉2進制7 {8 string str "";9 for (int i 0; i < s.size(); i) 10…

利用fastjson對json轉map的操作

String str "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}"; //第一種方式 Map maps (Map)JSON.parse(str); System.out.println("這個是用J…

推薦書籍

五百本編程書籍推薦【信息化類】 書號書名作者出版時間定價對應頁碼TP02041企業資源計劃&#xff08;ERP&#xff09;教程羅鴻2006-1&#xffe5;28.00—TP02031ERP理論、方法與實踐周玉清 等2005-12&#xffe5;39.00—TP01059ERP原理設計實施&#xff08;第3版&#xff09;羅…

Linux diffstat命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Linux diffstat命令根據diff的比較結果&#xff0c;顯示統計數字。 diffstat讀取diff的輸出結果&#xff0c;然后統計各文件的插入&…

java命令--jmap命令使用(查找內存泄漏對象)

轉自&#xff1a;https://www.cnblogs.com/kongzhongqijing/articles/3621163.html jdk安裝后會自帶一些小工具&#xff0c;jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java進程(或核心文件、遠程調試服務器)的共享對象內存映射或堆內存細節。 jmap命令可以獲得運行…

tr069相關協議說明

截圖自easycwmp官網&#xff1a;http://easycwmp.org/轉載于:https://www.cnblogs.com/kiss-passion/p/10362029.html

如何revert一個merged branch上所有的改動

開發過程中如果想刪除之前merged的某個branch&#xff0c;并且在merge過該分支之后又進行了多次的提交&#xff0c;可以通過以下命令進行&#xff1a; git revert -n merge_commit_id -m 1 注&#xff1a;該方法適合merge過分支后&#xff0c;沒有基于該branch內容做修改的情況…

Beta 沖刺(6/7)

隊名 火箭少男100組長博客 林燊大哥作業博客 Beta 沖鴨鴨鴨&#xff01;成員沖刺階段情況 林燊&#xff08;組長&#xff09; 過去兩天完成了哪些任務 協調組內工作最終測試文稿編寫展示GitHub當日代碼/文檔簽入記錄(組內共享)接下來的計劃 協助開發組完成標簽制作展示視頻制作…

Linux find命令、Linux rmdir命令、Linux ls命令

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Linux find命令用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時&#xff0c;不設置任…

Android Bluetooth BLE相關開發資源匯總

Android開啟藍牙開關 轉載自Android&#xff1a;Bluetooth 的打開和關閉 檢查系統藍牙是否開啟 BluetoothManager bluetoothManager (BluetoothManager) this. getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter mBluetoothAdapter bluetoothManager.getAdapt…

__invoke,try{}catch(){},microtime(),is_callable()

<?php /*1.對象本身不能直接當函數用&#xff0c;如果被當做函數用&#xff0c;會直接回調__invoke方法* 2.驗證變量的內容能否作為函數調用* 3.try{}catch(Exception $e){}catch(){}finally{}* 4.microtime()函數返回當前時間戳和微妙數* */ class httpException extends …

H.264中的I_PCM模式

H.264中的I_PCM模式 I_PCM是一種幀內編碼模式&#xff0c;在該模式下&#xff0c;編碼器直接傳輸圖像的像素值&#xff0c;而不經過預測和變換。在一些特殊的情況下&#xff0c;特別是圖像內容不規則或者量化參數非常低時&#xff0c;該模式比常規的操作&#xff08;幀內預測…

RxPermissions 源碼解析之舉一反三

[toc] RxPermissions 源碼解析 簡介 RxPermissions 是基于 RxJava 開發的用于幫助 在Android 6.0 中處理運行時權限檢測的框架。在 Android 6.0 中增加了對危險權限的動態申請&#xff0c;而不是像 Android 6.0 之前的默認全部獲取的方式。 原始動態權限的獲取 如果按照以往的獲…

總結Selenium WebDriver中一些鼠標和鍵盤事件的使用

在使用 Selenium WebDriver 做自動化測試的時候&#xff0c;會經常模擬鼠標和鍵盤的一些行為。比如使用鼠標單擊、雙擊、右擊、拖拽等動作&#xff1b;或者鍵盤輸入、快捷鍵使用、組合鍵使用等模擬鍵盤的操作。在 WebDeriver 中&#xff0c;有一個專門的類來負責實現這些測試場…

最快浮點數取絕對值

做視頻算法10多年&#xff0c;經常要算絕對值&#xff0c;整數的絕對值有快速算法&#xff0c;但浮點數的絕對值沒看到有快速算法&#xff0c;經常不段發現&#xff0c;得到如下浮點數的快速算法&#xff1a; 快6倍多&#xff0c; #include <Windows.h> #include <ios…