日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

HBase权威指南阅读——第一章

發(fā)布時(shí)間:2023/12/10 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase权威指南阅读——第一章 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.1為什么要設(shè)計(jì)這么一套新的存儲(chǔ)架構(gòu)

現(xiàn)在互聯(lián)網(wǎng)時(shí)代,不管生活中存在什么問題,我們都想通過互聯(lián)網(wǎng)來(lái)快速的檢索到答案,并且希望查到的結(jié)果是有用的。在這個(gè)海量數(shù)據(jù)的時(shí)代,對(duì)于之前的關(guān)系型數(shù)據(jù)庫(kù)可采取的措施就是把收集的數(shù)據(jù)刪減后保存,比如保存近N天的數(shù)據(jù),但是這樣沒辦法存儲(chǔ)幾年甚至更長(zhǎng)時(shí)間的數(shù)據(jù),也就無(wú)法對(duì)用戶歷史的行為進(jìn)行分析。因此新的存儲(chǔ)架構(gòu)就產(chǎn)生了,hadoop擅長(zhǎng)存儲(chǔ)任意的、半結(jié)構(gòu)化的甚至是非結(jié)構(gòu)話的數(shù)據(jù),它給用戶提供了數(shù)據(jù)存儲(chǔ)的無(wú)限空間,支持用戶在前擋的時(shí)候存儲(chǔ)和獲取數(shù)據(jù),對(duì)大文件存儲(chǔ)、批量訪問和流式訪問做了優(yōu)化。

1.2RDBMS的問題

RDBMS在存儲(chǔ)保留用戶、產(chǎn)品、訂單訂單信息的時(shí)候提供持久化的服務(wù)是很合適的。但是對(duì)于數(shù)據(jù)迅速增長(zhǎng)的情況,RDBMS就不大夠用了。 RDBMS提供了ACDI的特性,代表用戶數(shù)據(jù)是強(qiáng)一致性,這樣的如果你的用戶量特別多,那么共享的數(shù)據(jù)庫(kù)服務(wù)器的壓力也會(huì)越來(lái)越大,增加服務(wù)器可以有一定作用,但是對(duì)中央數(shù)據(jù)庫(kù)CPU和I/O負(fù)載還是有一定壓力。我們減輕壓力的第一步增加并行讀取的從服務(wù)器,將讀寫分離,因?yàn)镈B寫的請(qǐng)求遠(yuǎn)少于讀的請(qǐng)求,用戶大多數(shù)是瀏覽操作,但是如果用戶量持續(xù)上升,這樣也會(huì)收到性能限制。接下來(lái)就需要增加緩存了,把都操作放在內(nèi)存中緩存數(shù)據(jù)的系統(tǒng)里,但是這樣的問題無(wú)法保證數(shù)據(jù)的一致性,因?yàn)镈B不會(huì)主動(dòng)去更新緩存中的數(shù)據(jù),這樣可以緩解讀操作的壓力,但是寫操作還是沒有解決。如果負(fù)載在幾個(gè)月內(nèi)會(huì)增加一個(gè)數(shù)量級(jí)這時(shí)候我們用RDBMS的代價(jià)就比較昂貴了,MySQL這種數(shù)據(jù)庫(kù)適合于特定場(chǎng)景業(yè)務(wù),而且短期不會(huì)被取代,只是我們開發(fā)一個(gè)新產(chǎn)品,能預(yù)料到系統(tǒng)擴(kuò)展速度很快,那我們?cè)谠O(shè)計(jì)段就應(yīng)該希望所有功能都可以用。

1.3NoSQL(Not-Only-SQL)

RDBMS很適合事務(wù)性操作,但不適合超大規(guī)模的數(shù)據(jù)分析處理,而且它出現(xiàn)等待和死鎖的頻率與事務(wù)和并發(fā)的增加并不是線性關(guān)系,Hbase可以滿足這些需求。 NoSQL對(duì)系數(shù)矩陣、寬表、列式存儲(chǔ)的支持使數(shù)據(jù)在存儲(chǔ)的時(shí)候無(wú)需范式化,也可以避免查詢時(shí)用開銷很大的JOIN操作。使用智能的逐漸可以控制數(shù)據(jù)怎么去存儲(chǔ)和存儲(chǔ)到什么位置。可以使用行鍵的部分內(nèi)容去進(jìn)行檢索,和字典序坐部分為頭的索引效果相似,這樣的設(shè)計(jì)是性能不會(huì)因?yàn)閿?shù)據(jù)增長(zhǎng)而下降。

1.4結(jié)構(gòu)

表、行、列和單元格

最基本的單位是**列**。一列或多列形成一**行**,由唯一的**行鍵**(rowKey)來(lái)確定存儲(chǔ)。反過來(lái),一個(gè)**表**中有若干行,其中每列可能有多個(gè)版本,在每一個(gè)**單元格**中存儲(chǔ)了不同的值。

所有的行鍵按照字典序進(jìn)行排序存儲(chǔ)

行鍵排序可得到想RDBMS的主鍵索引一樣的特性,意味著行鍵總是唯一的,并且只出現(xiàn)一次,否則就是在更新同一行。


一行由若干列組成,這若干列又構(gòu)成了一個(gè)列族,這有助于構(gòu)建數(shù)據(jù)局部邊界和其他一些特性。

自動(dòng)分區(qū)

在HBase中擴(kuò)展和負(fù)載均衡的基本單元是region,region的本質(zhì)是以行鍵排序的連續(xù)存儲(chǔ)區(qū)間,如果region過大,系統(tǒng)就動(dòng)態(tài)拆分,反之即使合并,減少存儲(chǔ)文件數(shù)量。 region拆分和服務(wù)相當(dāng)于其他系統(tǒng)提供的**自動(dòng)分區(qū)**。當(dāng)一個(gè)服務(wù)器出現(xiàn)故障后,該服務(wù)器上的region可以快速回復(fù),并獲得細(xì)粒度的負(fù)載均衡,因?yàn)楫?dāng)服務(wù)于某個(gè)region的服務(wù)器當(dāng)負(fù)載過大、發(fā)生錯(cuò)誤或被停止導(dǎo)致不可用時(shí),系統(tǒng)會(huì)將該region移到其他服務(wù)器。

實(shí)現(xiàn)

數(shù)據(jù)存儲(chǔ)在**存儲(chǔ)文件**中,成為HFile。文件內(nèi)部由連續(xù)塊組成,塊的索引信息存儲(chǔ)在文件尾部。當(dāng)把HFile打開加載到內(nèi)存的時(shí)候,索引信息會(huì)先加載到內(nèi)存。每一個(gè)HFile都有一個(gè)快索引,通過以磁盤查找就可以實(shí)現(xiàn)查詢。現(xiàn)在內(nèi)存的塊索引中進(jìn)行二分查找,確定可能包含給定鍵的塊,然后讀取磁盤塊找到實(shí)際要找的鍵。 每次更新數(shù)據(jù)的時(shí)候,都先將數(shù)據(jù)記錄在提交日志中(HBase叫預(yù)寫日志),然后才會(huì)把這些數(shù)據(jù)寫入內(nèi)存的memstore中。一旦內(nèi)存中保存的寫入數(shù)據(jù)累計(jì)超過了一個(gè)給定的大小,系統(tǒng)就把這些數(shù)據(jù)移出內(nèi)存作為HFile文件寫到磁盤中,數(shù)據(jù)移出內(nèi)存之后系統(tǒng)會(huì)丟棄對(duì)應(yīng)的提交日志,只保留為持久化的到磁盤的日志,系統(tǒng)將數(shù)據(jù)移出memstore寫入磁盤的似乎和,不必阻塞系統(tǒng)的讀寫,通過滾動(dòng)內(nèi)存中的memstore就剋有實(shí)現(xiàn)。 HBase中有三給主要組件:客戶端庫(kù)、一臺(tái)主服務(wù)器、多臺(tái)region服務(wù)器。可以動(dòng)態(tài)增加移除region服務(wù)器,適應(yīng)不斷變化的負(fù)載。主服務(wù)器主要負(fù)責(zé)用Apache Zookeeper 為region服務(wù)器分配region,Apache Zookeeper 是一個(gè)可靠的、高可用的、持久化的分布式協(xié)調(diào)系統(tǒng)。

總結(jié)

以上是生活随笔為你收集整理的HBase权威指南阅读——第一章的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。