Hadoop第11周練習(xí)—HBase基礎(chǔ)知識(shí)
1 書面作業(yè)1:數(shù)據(jù)即日志
1.1 書面作業(yè)1內(nèi)容
1.2 回答
2 書面作業(yè)2:HBase合并過程
2.1 書面作業(yè)2內(nèi)容
2.2 回答
3 書面作業(yè)3:HBase一致性
3.1 書面作業(yè)3內(nèi)容
3.2 回答
1 書面作業(yè)1:數(shù)據(jù)即日志
1.1 書面作業(yè)1內(nèi)容
我們常說HBase是“數(shù)據(jù)即日志”的數(shù)據(jù)庫,它是怎樣修改和刪除數(shù)據(jù)的?和Oracle這類傳統(tǒng)的RDBMS有什么區(qū)別?
1.2 回答
HBase通過插入數(shù)據(jù)進(jìn)行修改和刪除,修改是根據(jù)時(shí)間戳完成的,刪除時(shí)在插入的行上增加了刪除標(biāo)志。HBase的操作都是插入數(shù)據(jù)、順序?qū)懀@點(diǎn)和關(guān)系型數(shù)據(jù)庫中的寫日志很相似,所以說HBase數(shù)據(jù)即日志。
HBase和Oracle傳統(tǒng)的RDBMS區(qū)別:
1. 修改和刪除數(shù)據(jù)方式不一樣:在關(guān)系型數(shù)據(jù)做修改和刪除數(shù)據(jù)時(shí)不會(huì)增加新的數(shù)據(jù)記錄,直接對(duì)老數(shù)據(jù)進(jìn)行修改或刪除,一旦完成修改或刪除,則原始數(shù)據(jù)發(fā)生變化。HBase HBase通過插入數(shù)據(jù)進(jìn)行修改和刪除。
2. 數(shù)據(jù)存儲(chǔ)方式不一樣: HBase是列式存儲(chǔ),傳統(tǒng)Oracle關(guān)系型數(shù)據(jù)庫是行式存儲(chǔ)。HBase在做數(shù)據(jù)分析等場景比關(guān)系型數(shù)據(jù)庫要好,數(shù)據(jù)分析時(shí)通常只需要讀取部分列,HBase可以只讀取這些列,而關(guān)系型數(shù)據(jù)庫就需要全部列
3. 尋址方式不同:HBase的性能瓶頸在硬盤傳輸,而關(guān)系型數(shù)據(jù)庫的瓶頸在硬盤尋道時(shí)間
4. 壓縮效率不同:HBase等列式數(shù)據(jù)庫相近的列里存的數(shù)據(jù)格式都很相近的,可以大幅度的壓縮。所以壓縮率會(huì)很高。行式數(shù)據(jù)庫的壓縮就沒那么高,這樣列式數(shù)據(jù)庫不但節(jié)省了硬盤空間,也減少了io。但是對(duì)于聯(lián)機(jī)事務(wù)系統(tǒng)的隨機(jī)讀寫,還是行式數(shù)據(jù)庫更合適。
2 書面作業(yè)2:HBase合并過程
2.1 書面作業(yè)2內(nèi)容
HBase合并storefile的原因是什么?在合并的過程中會(huì)做什么操作?如果在合并過程中恰好有涉及到有關(guān)storefile的查詢發(fā)生,會(huì)發(fā)生什么情況(這個(gè)問題需要自行研究)?
2.2 回答
HBase合并Storefile的原因是由于HBase持久化數(shù)據(jù)保存在HDFS造成的,HDFS不擅長處理小文件,所以需要對(duì)Storefile進(jìn)行合并。
HBase合并時(shí)做了兩件事,第一刪除有刪除標(biāo)記的數(shù)據(jù)和過期的舊版本數(shù)據(jù),第二將多個(gè)小Storefile文件合并成一個(gè)大Storefile文件
如果在合并過程中恰好有涉及到有關(guān)Storefile查詢發(fā)生,HBase先是把小Storefile加載到內(nèi)存中用于用戶在內(nèi)存中檢索相關(guān)數(shù)據(jù),在內(nèi)存中建立一個(gè)獨(dú)立鏡像備份專門提供查詢,當(dāng)合并完成后撤銷內(nèi)存空間中的鏡像。
3 書面作業(yè)3:HBase一致性
3.1 書面作業(yè)3內(nèi)容
HBase具有怎樣的一致性水平?
3.2 回答
HBase是最終一致性的系統(tǒng),因?yàn)?span lang="EN-US">HBase是架構(gòu)在Hadoop之上的數(shù)據(jù)庫,“錯(cuò)誤是常態(tài)”是Hadoop座右銘,在CAP理論中HBase為了滿足可用性和分區(qū)容錯(cuò)性犧牲了一部分的數(shù)據(jù)一致性。
舉例:我們要進(jìn)行電信的指標(biāo)匯總,并且把匯總結(jié)果冗余三份分布在3個(gè)datanode中,我們可以設(shè)置閥值只要有2份結(jié)果保存了我們就可以繼續(xù)做下面的操作,在一定時(shí)間范圍內(nèi)允許第3份結(jié)果稍后一致性同步,這就是最終一致性。所以說hbase是適用于AP理論的系統(tǒng),最終一致性也滿足分布式集群的特點(diǎn)。
注:
CAP理論是由EricBrewer教授提出的,在設(shè)計(jì)和部署分布式應(yīng)用的時(shí)候,存在三個(gè)核心的系統(tǒng)需求,這個(gè)三個(gè)需求之間存在一定的特殊關(guān)系。三個(gè)需求如下:
C: Consistency一致性
A: Availability可用性
P:Partition Tolerance分區(qū)容錯(cuò)性
CAP理論的核心是:一個(gè)分布式系統(tǒng)不可能同時(shí)很好的滿足一致性,可用性和分區(qū)容錯(cuò)性這三個(gè)需求,最多只能同時(shí)較好的滿足兩個(gè)。

浙公網(wǎng)安備 33010602011771號(hào)