自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文讀懂大數(shù)據(jù)時(shí)代的結(jié)構(gòu)化存儲(chǔ)數(shù)據(jù)庫(kù)——HBase

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
Hbase非常適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),2006年底由PowerSet 的Chad Walters和Jim Kellerman 發(fā)起,2008年成為Apache Hadoop的一個(gè)子項(xiàng)目。HBase – Hadoop Database,是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。

Hbase非常適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),2006年底由PowerSet 的Chad Walters和Jim Kellerman 發(fā)起,2008年成為Apache Hadoop的一個(gè)子項(xiàng)目。現(xiàn)已作為產(chǎn)品在多家企業(yè)被使用。

分布式數(shù)據(jù)庫(kù) HBase

授權(quán)協(xié)議:Apache

開發(fā)語言:Java

操作系統(tǒng):跨平臺(tái)

項(xiàng)目地址:https://github.com/apache/hbase

HBase項(xiàng)目簡(jiǎn)介

HBase – Hadoop Database,是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。

HBase是Google Bigtable的開源實(shí)現(xiàn),類似Google Bigtable利用GFS作為其文件存儲(chǔ)系統(tǒng),HBase利用Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng);Google運(yùn)行MapReduce來處理Bigtable中的海量數(shù)據(jù),HBase同樣利用Hadoop MapReduce來處理HBase中的海量數(shù)據(jù);Google Bigtable利用 Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對(duì)應(yīng)。

Hbase 特性

  • 大表:數(shù)十億行*數(shù)百萬列*數(shù)千個(gè)版本 = TB級(jí)或PB級(jí)的存儲(chǔ)
  • 面向列:面向列(族)的存儲(chǔ)和權(quán)限控制,列(族)獨(dú)立檢索。
  • 稀疏:對(duì)于為空(null)的列,并不占用存儲(chǔ)空間,因此,表可以設(shè)計(jì)的非常稀疏。
  • 數(shù)據(jù)多版本:每個(gè)單元中的數(shù)據(jù)可以有多個(gè)版本,默認(rèn)情況下版本號(hào)自動(dòng)分配,是單元格插入時(shí)的時(shí)間戳;
  • 數(shù)據(jù)類型單一:Hbase中的數(shù)據(jù)都是字符串,沒有類型

HBase系統(tǒng)架構(gòu)

HBase中的組件包括Client、Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等,HBase中的每張表都通過行鍵按照一定的范圍被分割成多個(gè)子表(HRegion),默認(rèn)一個(gè)HRegion超過256M就要被分割成兩個(gè),這個(gè)過程由HRegionServer管理,而HRegion的分配由HMaster管理。

相關(guān)名詞介紹

RowKey:是Byte array,是表中每條記錄的“主鍵”,方便快速查找,Rowkey的設(shè)計(jì)非常重要。表中的行根據(jù)行的鍵值進(jìn)行排序,數(shù)據(jù)按照RowKey的字典序排序存儲(chǔ)

Column Family:列族,擁有一個(gè)名稱(string),包含一個(gè)或者多個(gè)相關(guān)列。列族須作為表模式(schema)定義的一部分預(yù)先定義。如create 'alarmInfo' ,'i'

Column:屬于某一個(gè)columnfamily,familyName:columnName,每條記錄可動(dòng)態(tài)添加

Version Number:類型為L(zhǎng)ong,默認(rèn)值是系統(tǒng)時(shí)間戳,可由用戶自定義

Value(Cell):由{row key, column(=<family> + <label>), version} ***確定的單元。cell中的數(shù)據(jù)是沒有類型的,全部是字節(jié)碼形式存貯。

HBase邏輯模型

HBase以表的形式存儲(chǔ)數(shù)據(jù)。表有行和列組成。列劃分為若干個(gè)列族(row family)

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中分布式存儲(chǔ)和負(fù)載均衡的最小單元,不同Region分布到不同RegionServer上。

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

Hbase 請(qǐng)求過程

HBase是一個(gè)分布式數(shù)據(jù)庫(kù),因此一張表的數(shù)據(jù)可能會(huì)分布在不同的節(jié)點(diǎn)中。需要注意的是 region是Hbase分布式存儲(chǔ)的最小單位,但region不是HBase存儲(chǔ)的最小單位。在HBase中,一張表會(huì)被根據(jù)行鍵值的范圍劃分為幾個(gè)region,然后不同的region將會(huì)放在不同的region服務(wù)器上,被服務(wù)器上的HRegionServer 所管理和維持。

因此我們可以推斷出,當(dāng)我們發(fā)送一個(gè)查找(插入、刪除)請(qǐng)求時(shí),首先客戶端能根據(jù)請(qǐng)求中的行鍵值去確定該行鍵值應(yīng)該存儲(chǔ)在哪一個(gè)region上,并且該region在哪一個(gè)region服務(wù)器上(該查詢過程主要使用-ROOT-表、和.meta表,當(dāng)定位到操作的region服務(wù)器的位置以后,客戶端(Client)會(huì)將該操作發(fā)送到region服務(wù)器上,然后請(qǐng)求操作可能會(huì)被直接執(zhí)行,也可能會(huì)進(jìn)入任務(wù)隊(duì)列等待

Hbase 與RDBMS對(duì)比

為什么采用HBase?

HBase 不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù).所謂非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)就是說HBase是基于列的而不是基于行的模式,這樣方面讀寫你的大數(shù)據(jù)內(nèi)容。

HBase是介于Map Entry(key & value)和DB Row之間的一種數(shù)據(jù)存儲(chǔ)方式。就點(diǎn)有點(diǎn)類似于現(xiàn)在流行的Memcache,但不僅僅是簡(jiǎn)單的一個(gè)key對(duì)應(yīng)一個(gè) value,你很可能需要存儲(chǔ)多個(gè)屬性的數(shù)據(jù)結(jié)構(gòu),但沒有傳統(tǒng)數(shù)據(jù)庫(kù)表中那么多的關(guān)聯(lián)關(guān)系,這就是所謂的松散數(shù)據(jù)。

 

簡(jiǎn)單來說,你在HBase中的表創(chuàng)建的可以看做是一張很大的表,而這個(gè)表的屬性可以根據(jù)需求去動(dòng)態(tài)增加,在HBase中沒有表與表之間關(guān)聯(lián)查詢。你只需要 告訴你的數(shù)據(jù)存儲(chǔ)到Hbase的那個(gè)column families 就可以了,不需要指定它的具體類型:char,varchar,int,tinyint,text等等。但是你需要注意HBase中不包含事務(wù)此類的功 能。 

責(zé)任編輯:龐桂玉 來源: 數(shù)據(jù)庫(kù)開發(fā)
相關(guān)推薦

2023-02-13 23:39:48

數(shù)據(jù)庫(kù)Mongodb存儲(chǔ)

2018-04-03 13:08:31

2022-07-28 09:02:41

文件存儲(chǔ)系統(tǒng)

2017-06-02 15:32:09

大數(shù)據(jù)數(shù)據(jù)可視化

2022-10-20 08:01:23

2014-04-29 09:59:44

2018-03-17 09:00:21

大數(shù)據(jù) 區(qū)塊鏈

2015-03-17 11:28:03

大數(shù)據(jù)黃色小象Hadoop

2024-12-27 14:45:59

2021-07-05 10:48:42

大數(shù)據(jù)實(shí)時(shí)計(jì)算

2020-06-05 14:15:29

可視化數(shù)據(jù)集分析

2019-07-13 15:00:17

結(jié)構(gòu)化SQLNOSQL數(shù)據(jù)庫(kù)

2017-05-05 12:59:00

大數(shù)據(jù)物聯(lián)網(wǎng)安全

2014-02-17 10:28:34

大數(shù)據(jù)

2024-09-03 08:40:31

2022-08-27 10:37:48

電子取證信息安全

2019-01-30 09:30:50

大數(shù)據(jù)互聯(lián)網(wǎng)人工智能

2017-03-08 10:29:06

HBase大數(shù)據(jù)存儲(chǔ)

2023-11-29 16:16:14

Redis數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)