《Hadoop批處理技術(shù)與應(yīng)用》課件-第六章 HBase理論基礎(chǔ)_第1頁
《Hadoop批處理技術(shù)與應(yīng)用》課件-第六章 HBase理論基礎(chǔ)_第2頁
《Hadoop批處理技術(shù)與應(yīng)用》課件-第六章 HBase理論基礎(chǔ)_第3頁
《Hadoop批處理技術(shù)與應(yīng)用》課件-第六章 HBase理論基礎(chǔ)_第4頁
《Hadoop批處理技術(shù)與應(yīng)用》課件-第六章 HBase理論基礎(chǔ)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第六章HBase理論基礎(chǔ)12NoSQL數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫HBase的特點(diǎn)及其體系架構(gòu)3HBase的表結(jié)構(gòu)4-ROOT-和.META.5HBase的Region分裂

NoSQL數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫

第六章HBase理論基礎(chǔ)01關(guān)系型數(shù)據(jù)庫第六章HBase理論基礎(chǔ)關(guān)系型數(shù)據(jù)庫是依據(jù)關(guān)系模型來創(chuàng)建的數(shù)據(jù)庫。常見的關(guān)系型數(shù)據(jù)庫有:OracleMySQLDB2SQLServerMariaDB什么是關(guān)系模型第六章HBase理論基礎(chǔ)所謂關(guān)系模型就是“一對一、一對多、多對多”等關(guān)系模型,關(guān)系模型就是指二維表格模型,因而一個關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系組成的一個數(shù)據(jù)組織。關(guān)系型數(shù)據(jù)可以很好地存儲一些關(guān)系模型的數(shù)據(jù),比如一個老師對應(yīng)多個學(xué)生的數(shù)據(jù)(“多對多”),一本書對應(yīng)多個作者(“一對多”),一本書對應(yīng)一個出版日期(“一對一”)關(guān)系模型是我們生活中能經(jīng)常遇見的模型,存儲這類數(shù)據(jù)一般用關(guān)系型數(shù)據(jù)庫關(guān)系模型包括數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)存儲的問題,二維表)、操作指令集合(SQL語句)、完整性約束(表內(nèi)數(shù)據(jù)約束、表與表之間的約束)。什么是ER模型?第六章HBase理論基礎(chǔ)ER圖分為實(shí)體、屬性、關(guān)系三個核心部分。實(shí)體是長方形體現(xiàn),而屬性則是橢圓形,關(guān)系為菱形。ER圖的實(shí)體(entity)即數(shù)據(jù)模型中的數(shù)據(jù)對象,例如人、學(xué)生、音樂都可以作為一個數(shù)據(jù)對象,用長方體來表示,每個實(shí)體都有自己的實(shí)體成員(entitymember)或者說實(shí)體對象(entityinstance),例如學(xué)生實(shí)體里包括張三、李四等,實(shí)體成員(entitymember)/實(shí)體實(shí)例(entityinstance)不需要出現(xiàn)在ER圖中。ER圖的屬性(attribute)即數(shù)據(jù)對象所具有的屬性,例如學(xué)生具有姓名、學(xué)號、年級等屬性,用橢圓形表示,屬性分為唯一屬性(uniqueattribute)和非唯一屬性,唯一屬性指的是唯一可用來標(biāo)識該實(shí)體實(shí)例或者成員的屬性,用下劃線表示,一般來講實(shí)體都至少有一個唯一屬性。ER圖的關(guān)系(relationship)用來表現(xiàn)數(shù)據(jù)對象與數(shù)據(jù)對象之間的聯(lián)系,例如學(xué)生的實(shí)體和成績表的實(shí)體之間有一定的聯(lián)系,每個學(xué)生都有自己的成績表,這就是一種關(guān)系,關(guān)系用菱形來表示。Page

7ER模型示例第六章HBase理論基礎(chǔ)Page

8NoSQL數(shù)據(jù)庫第六章HBase理論基礎(chǔ)NoSQL是NotOnlySQL的縮寫,意即"不僅僅是SQL"的意思,泛指非關(guān)系型的數(shù)據(jù)庫。強(qiáng)調(diào)Key-ValueStores和文檔數(shù)據(jù)庫的優(yōu)點(diǎn),而不是單純的反對RDBMS。常見的NoSQL數(shù)據(jù)庫第六章HBase理論基礎(chǔ)HBaseRedisMongoDBCassandraHBase簡介第六章HBase理論基礎(chǔ)ApacheHBase是一種NoSQL鍵/值存儲系統(tǒng),它在Hadoop分布式文件系統(tǒng)(HDFS)上運(yùn)行。不像Hive,HBase操作在數(shù)據(jù)庫上,而不是MapReduce作業(yè)上實(shí)時運(yùn)行。HBase分成表,表又細(xì)分成列族(columnfamily)。列族必須在模式中加以聲明,它將某一組列(列不需要模式定義)分為小組。比如說,“message”列族可能包括以下這幾列:“to”、“from”、“date”、“subject”和“body”。HBase中的每個鍵/值對被定義為一個單元(cell),每個鍵含有行鍵、列族和時間戳。HBase中的行是一組鍵/值映射,由行鍵來識別。HBase可以使用Hadoop的基礎(chǔ)設(shè)施,并使用現(xiàn)成服務(wù)器實(shí)現(xiàn)橫向擴(kuò)展。Redis簡介第六章HBase理論基礎(chǔ)Redis是將數(shù)據(jù)存放到內(nèi)存中,由于內(nèi)容存取速度快所以redis被廣泛應(yīng)用在互聯(lián)網(wǎng)項(xiàng)目中。redis有點(diǎn)存取速度快的特點(diǎn)。官方稱讀取速度會達(dá)到30萬次每秒,寫速度在10萬次每秒最有,具體限制于硬件。MongoDB簡介第六章HBase理論基礎(chǔ)最流行的文檔數(shù)據(jù)庫之一。它是一種面向文檔的數(shù)據(jù)庫。Mongodb中的所有數(shù)據(jù)以JSON/BSON格式來處理。它是一種無模式數(shù)據(jù)庫,數(shù)據(jù)庫中的數(shù)據(jù)量超過TB級。它還支持主從復(fù)制方法,以便在服務(wù)器上復(fù)制數(shù)據(jù)的多個副本,從而使得某些應(yīng)用系統(tǒng)中的數(shù)據(jù)整合來得更容易、更快速。Cassandra簡介第六章HBase理論基礎(chǔ)寬列式數(shù)據(jù)庫,基于BigTable和DynamoDB的概念。ApacheCassandra是一種主要的NoSQL分布式數(shù)據(jù)庫管理系統(tǒng),它支撐著如今的許多現(xiàn)代商務(wù)應(yīng)用系統(tǒng),它提供了持續(xù)可用性、高擴(kuò)展性和高性能、強(qiáng)安全性和操作簡單性,同時降低了總體擁有成本。Cassandra擁有分散式架構(gòu)。任何節(jié)點(diǎn)都能執(zhí)行任何操作。它提供了CAP原理中的AP(可用性和分區(qū)可容忍性)。關(guān)系型數(shù)據(jù)庫與NoSQL數(shù)據(jù)庫第六章HBase理論基礎(chǔ)關(guān)系型數(shù)據(jù)庫的優(yōu)點(diǎn)容易理解:二維表結(jié)構(gòu)是非常貼近邏輯世界的一個概念,關(guān)系模型相對網(wǎng)狀、層次等其他模型來說更容易理解使用方便:通用的SQL語言使得操作關(guān)系型數(shù)據(jù)庫非常方便易于維護(hù):豐富的完整性(實(shí)體完整性、參照完整性和用戶定義的完整性)大大減低了數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率ACID,多表關(guān)聯(lián),復(fù)雜的數(shù)據(jù)分析類SQL查詢。事務(wù)處理—保持?jǐn)?shù)據(jù)的一致性;由于以標(biāo)準(zhǔn)化為前提,數(shù)據(jù)更新的開銷很?。ㄏ嗤淖侄位旧现挥幸惶帲?;可以進(jìn)行Join等復(fù)雜查詢關(guān)系型數(shù)據(jù)庫與NoSQL數(shù)據(jù)庫第六章HBase理論基礎(chǔ)NoSQL數(shù)據(jù)庫的優(yōu)點(diǎn)NoSQL具有靈活的數(shù)據(jù)模型,可以處理非結(jié)構(gòu)化/半結(jié)構(gòu)化的大數(shù)據(jù)面對豐富多樣的數(shù)據(jù),構(gòu)建的應(yīng)用需要使用非常靈活的數(shù)據(jù)存儲系統(tǒng),能夠輕松容納新的數(shù)據(jù)類型,并且不會被第三方數(shù)據(jù)提供商內(nèi)容結(jié)構(gòu)的變化所累。NoSQL提供的數(shù)據(jù)模型則能很好地滿足這種需求。通過這種靈活性存儲數(shù)據(jù)而無需修改表或是創(chuàng)建更多的列。非常適合于創(chuàng)建原型或是快速應(yīng)用,這種靈活性使得新特性的開發(fā)變得非常容易。NoSQL很容易實(shí)現(xiàn)可伸縮性(向上擴(kuò)展與水平擴(kuò)展)RDBMS是中心化的,向上擴(kuò)展而非水平擴(kuò)展的。這使得他們不適合于那些需要簡單且動態(tài)可伸縮性的應(yīng)用。NoSQL數(shù)據(jù)庫從一開始就是分布式、水平擴(kuò)展的,因此非常適合于互聯(lián)網(wǎng)應(yīng)用分布式的特性。關(guān)系型數(shù)據(jù)庫orNoSQL數(shù)據(jù)庫?第六章HBase理論基礎(chǔ)關(guān)系型數(shù)據(jù)庫的最大特點(diǎn)就是事務(wù)的一致性:傳統(tǒng)的關(guān)系型數(shù)據(jù)庫讀寫操作都是事務(wù)的,具有ACID的特點(diǎn),這個特性使得關(guān)系型數(shù)據(jù)庫可以用于幾乎所有對一致性有要求的系統(tǒng)中,如典型的銀行系統(tǒng)。但是,在網(wǎng)頁應(yīng)用中,尤其是SNS應(yīng)用中,一致性卻不是顯得那么重要,用戶A看到的內(nèi)容和用戶B看到同一用戶C內(nèi)容更新不一致是可以容忍的,或者說,兩個人看到同一好友的數(shù)據(jù)更新的時間差那么幾秒是可以容忍的,因此,關(guān)系型數(shù)據(jù)庫的最大特點(diǎn)在這里已經(jīng)無用武之地,起碼不是那么重要了。相反地,關(guān)系型數(shù)據(jù)庫為了維護(hù)一致性所付出的巨大代價就是其讀寫性能比較差,而像微博、facebook這類SNS的應(yīng)用,對并發(fā)讀寫能力要求極高,關(guān)系型數(shù)據(jù)庫已經(jīng)無法應(yīng)付(在讀方面,傳統(tǒng)上為了克服關(guān)系型數(shù)據(jù)庫缺陷,提高性能,都是增加一級memcache來靜態(tài)化網(wǎng)頁,而在SNS中,變化太快,memchache已經(jīng)無能為力了),因此,必須用新的一種數(shù)據(jù)結(jié)構(gòu)存儲來代替關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫的另一個特點(diǎn)就是其具有固定的表結(jié)構(gòu),因此,其擴(kuò)展性極差,而在SNS中,系統(tǒng)的升級,功能的增加,往往意味著數(shù)據(jù)結(jié)構(gòu)巨大變動,這一點(diǎn)關(guān)系型數(shù)據(jù)庫也難以應(yīng)付,需要新的結(jié)構(gòu)化數(shù)據(jù)存儲。于是,非關(guān)系型數(shù)據(jù)庫應(yīng)運(yùn)而生,由于不可能用一種數(shù)據(jù)結(jié)構(gòu)化存儲應(yīng)付所有的新的需求,因此,非關(guān)系型數(shù)據(jù)庫嚴(yán)格上不是一種數(shù)據(jù)庫,應(yīng)該是一種數(shù)據(jù)結(jié)構(gòu)化存儲方法的集合。

HBase的特點(diǎn)及其體系架構(gòu)

第六章HBase理論基礎(chǔ)02HBase的體系架構(gòu)第六章HBase理論基礎(chǔ)HBase的體系架構(gòu)詳解第六章HBase理論基礎(chǔ)從物理結(jié)構(gòu)上講,HBase由三種類型的服務(wù)器構(gòu)成主從式架構(gòu)。RegionServers為數(shù)據(jù)的讀取和寫入提供服務(wù)。當(dāng)訪問數(shù)據(jù)時,客戶端直接和RegionServers通信。Region的分配,DDL(create,deletetables)操作有HBaseMaster進(jìn)程處理。Zookeeper是HDFS的一部分,維護(hù)著一個活動的集群。HadoopDataNode存儲著RegionServer所管理的數(shù)據(jù)。所有的HBase數(shù)據(jù)存儲在HDFS的文件中。RegionServer和HDfsDataNode并置在一起,這使得RegionServers所服務(wù)的數(shù)據(jù)具有數(shù)據(jù)局部性(使數(shù)據(jù)接近需要的位置)。HBase數(shù)據(jù)在寫入時是本地數(shù)據(jù),但是當(dāng)Region移動時,在壓實(shí)之前它不是本地數(shù)據(jù)。NameNode維護(hù)構(gòu)成文件的所有物理數(shù)據(jù)塊的元數(shù)據(jù)信息。HBase的特點(diǎn)第六章HBase理論基礎(chǔ)HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于FayChang所撰寫的Google論文“Bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(FileSystem)所提供的分布式數(shù)據(jù)存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫,它是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個不同的是HBase基于列的而不是基于行的模式。

HBase的表結(jié)構(gòu)

第六章HBase理論基礎(chǔ)03HBase的表結(jié)構(gòu)第六章HBase理論基礎(chǔ)HBase的表結(jié)構(gòu)詳解第六章HBase理論基礎(chǔ)表的行、列、列簇首先我們應(yīng)該知道的是:最基本的單位是列(column),一列或者多列組成一行(row),并且由唯一的行鍵(rowkey)來確定存儲。一個表中有很多行,每一列可能有多個版本,在每一個單元格(Cell)中存儲了不同的值。列族需要在創(chuàng)建表的時候就定義好,雖然后面可以對列簇進(jìn)行增加和刪除,但是最開始要確定好表的結(jié)構(gòu),數(shù)量也不宜過多。,創(chuàng)建表的時候不需要定義好列。對列的插入格式通常為family:qualifier,qualifier也可以是任意的字節(jié)數(shù)組。同一個列族里qualifier的名稱應(yīng)該唯一,否則就是在更新同一列,列的數(shù)量沒有限制,可以達(dá)到百萬級別。列值也沒有類型和長度限定。都是字節(jié)數(shù)組HBase會對rowkey的長度做檢查,默認(rèn)應(yīng)該小于65536,因?yàn)橐粋€表,數(shù)據(jù)的持久化文件HFile中是按照KeyValue存儲的,如果rowkey過長,在一個行很多的表中,只是rowkey就要占用很大的儲存空間,這樣會極大影響HFile的存儲效率;MemStore將緩存部分?jǐn)?shù)據(jù)到內(nèi)存,如果rowkey字段過長,內(nèi)存的有效利用率就會降低,系統(tǒng)不能緩存更多的數(shù)據(jù),這樣會降低檢索效率。在一個表中rowkey是惟一的,如果相同的插入就是更新,整個表按照rowkey的字典進(jìn)行有序排序,通過如下的方式取得唯一的值:{namespace->table->colum_family->colum->timestamp}->唯一value

-ROOT-和.META.

第六章HBase理論基礎(chǔ)04-ROOT-和.META.第六章HBase理論基礎(chǔ)從存儲結(jié)構(gòu)和操作方法的角度來說,-ROOT-、.META.與其他表沒有任何區(qū)別。它們與眾不同的地方是HBase用它們來存貯一個重要的系統(tǒng)信息:-ROOT-:記錄.META.表的Region信息。.META.:記錄用戶表的Region信息。其中-ROOT-表本身只會有一個region,這樣保證了只需要三次跳轉(zhuǎn),就能定位到任意region,Page

26HBase查詢表的過程第六章HBase理論基礎(chǔ)

HBase的Region分裂

第六章HBase理論基礎(chǔ)05Page

28什么是Region的分裂第六章HBase理論基礎(chǔ)HBase中的Region是一張表的子集,也就是說把一張表在水平方向上切割成若干個region。一張表一開始的時候只有一個region(區(qū)域),隨著數(shù)據(jù)量的增長,會自動(或手動)切分出來越來越多的region。HBase中針對表采用”Range分區(qū)”,把rowkey的完整區(qū)間切割成一個個的”KeyRange”,每一個”KeyRange”稱為一個Region,所以說region其實(shí)是按照連續(xù)的rowKey存儲的區(qū)間。不同Region分布到不同RegionServer上,region是Hbase集群分布數(shù)據(jù)的最小單位,或者說region是HBase中分布式存儲和負(fù)載均衡的最小單元,但不是存儲的最小單元。存儲的最小單元是storefile(也叫Hfile)。StoreFile是存放數(shù)據(jù)的地方,里面存的是一個列簇的數(shù)據(jù),每一條數(shù)據(jù)都是key-value,storefile的內(nèi)部是按照rowkey有序排列的,但是storefile之間是無序的。Region的分裂示例第六章HBase理論基礎(chǔ)為什么要分離Region第六章HBase理論基礎(chǔ)更大的Region

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論