




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
HBase數(shù)據(jù)傾斜2知識(shí)目標(biāo)分布式與并行處理熱點(diǎn)和數(shù)據(jù)傾斜存儲(chǔ)方式引起的熱點(diǎn)問(wèn)題和數(shù)據(jù)傾斜01能力目標(biāo)解決數(shù)據(jù)傾斜和熱點(diǎn)問(wèn)題ColumnFamily列族設(shè)計(jì)數(shù)量一對(duì)多設(shè)計(jì)和寬表02學(xué)習(xí)目標(biāo)3目錄01分布式與并行處理02什么是熱點(diǎn)和數(shù)據(jù)傾斜03預(yù)分區(qū)和rowkey的散列設(shè)計(jì)——解決數(shù)據(jù)傾斜和熱點(diǎn)問(wèn)題04預(yù)分區(qū)splitkeys選取05一對(duì)多設(shè)計(jì)和寬表分布式與并行處理41.分布式系統(tǒng)通常,我們說(shuō)分布式系統(tǒng)的時(shí)候,我們都會(huì)想到Dubbo框架和SpringCloud框架。這兩個(gè)框架現(xiàn)在應(yīng)該是國(guó)內(nèi)用的比較多的兩個(gè)分布式框架了,特點(diǎn)都是很容易把服務(wù)部署在多臺(tái)機(jī)器組成一個(gè)高可用的服務(wù)集群來(lái)應(yīng)對(duì)高并發(fā)。分布式與并行處理52.多線程和并行處理我們都知道多線程是怎樣的一個(gè)概念,它就是一個(gè)并行處理的例子,它是在一臺(tái)計(jì)算機(jī)并行的。多線程的概念是,多個(gè)線程在搶占資源,搶到了資源的線程會(huì)運(yùn)作,其它的線程在等待,所以并不是真正意義上的并行,只是因?yàn)橛?jì)算機(jī)的運(yùn)行速度比較快,所以我們可以認(rèn)為它是并行處理的。什么是熱點(diǎn)和數(shù)據(jù)傾斜6熱點(diǎn)發(fā)生在大量的client直接訪問(wèn)集群的一個(gè)或極少數(shù)個(gè)節(jié)點(diǎn)(訪問(wèn)可能是讀,寫或者其他操作)。
大量訪問(wèn)會(huì)使熱點(diǎn)region所在的單個(gè)機(jī)器超出自身承受能力,引起性能下降甚至region不可用,這也會(huì)影響同一個(gè)RegionServer上的其他region,由于主機(jī)無(wú)法服務(wù)其他region的請(qǐng)求,造成資源浪費(fèi)。 設(shè)計(jì)良好的數(shù)據(jù)訪問(wèn)模式以使集群被充分,均衡的利用。?什么是熱點(diǎn)和數(shù)據(jù)傾斜7數(shù)據(jù)傾斜,Hbase可以被劃分為多個(gè)Region,但是默認(rèn)創(chuàng)建時(shí)只有一個(gè)Region分布在集群的一個(gè)節(jié)點(diǎn)上,數(shù)據(jù)一開始時(shí)都集中在這個(gè)Region,也就是集中在這一個(gè)節(jié)點(diǎn)上,就算region存儲(chǔ)達(dá)到臨界值時(shí)被劃分,數(shù)據(jù)也是存儲(chǔ)在少數(shù)節(jié)點(diǎn)上。這就是數(shù)據(jù)傾斜。HBase的存儲(chǔ)方式引起的熱點(diǎn)問(wèn)題和數(shù)據(jù)傾斜8HBase中的行是按照rowkey的字典順序排序的,這種設(shè)計(jì)優(yōu)化了scan操作,可以將相關(guān)的行以及會(huì)被一起讀取的行存取在臨近位置,便于scan。rowkey設(shè)計(jì)是熱點(diǎn)的源頭。這種設(shè)計(jì)是分布式系統(tǒng)一個(gè)很大的弊端,而且這樣導(dǎo)致數(shù)據(jù)傾斜和熱點(diǎn)問(wèn)題,從而導(dǎo)致集群的資源得不到很好的利用。預(yù)分區(qū)和rowkey的散列設(shè)計(jì)——解決熱點(diǎn)問(wèn)題和數(shù)據(jù)傾斜91.預(yù)分區(qū)預(yù)分區(qū),讓表的數(shù)據(jù)可以均衡的分散在集群中,而不是默認(rèn)只有一個(gè)region分布在集群的一個(gè)節(jié)點(diǎn)上。(預(yù)分區(qū)個(gè)數(shù)=節(jié)點(diǎn)的倍數(shù),看數(shù)據(jù)量估算,region不足了會(huì)被分列,預(yù)分區(qū)后每個(gè)region的rowkey還是有序的)一個(gè)RegionServer能管理10-1000個(gè)Region,0.92.x版本后,默認(rèn)的Region大小為10G,向下可以支持256MB,向上可以支持到20G,也就是說(shuō),每個(gè)RegionServer能管理的數(shù)據(jù)量為2.5GB-20TB。預(yù)分區(qū)和rowkey的散列設(shè)計(jì)——解決熱點(diǎn)問(wèn)題和數(shù)據(jù)傾斜102.Rowkey長(zhǎng)度原則(最好不超過(guò)16字節(jié))Rowkey是一個(gè)二進(jìn)制碼流,Rowkey的長(zhǎng)度被很多開發(fā)者建議說(shuō)設(shè)計(jì)在10~100個(gè)字節(jié),不過(guò)建議是越短越好,不要超過(guò)16個(gè)字節(jié)。(1)數(shù)據(jù)的持久化文件HFile中是按照KeyValue存儲(chǔ)的,如果Rowkey過(guò)長(zhǎng)比如100個(gè)字節(jié),1000萬(wàn)列數(shù)據(jù)光Rowkey就要占用100*1000萬(wàn)=10億個(gè)字節(jié),將近1G數(shù)據(jù),這會(huì)極大影響HFile的存儲(chǔ)效率;(2)MemStore將緩存部分?jǐn)?shù)據(jù)到內(nèi)存,如果Rowkey字段過(guò)長(zhǎng)內(nèi)存的有效利用率會(huì)降低,系統(tǒng)將無(wú)法緩存更多的數(shù)據(jù),這會(huì)降低檢索效率。因此Rowkey的字節(jié)長(zhǎng)度越短越好。(3)目前操作系統(tǒng)是都是64位系統(tǒng),內(nèi)存8字節(jié)對(duì)齊。控制在16個(gè)字節(jié),8字節(jié)的整數(shù)倍利用操作系統(tǒng)的最佳特性。預(yù)分區(qū)和rowkey的散列設(shè)計(jì)——解決熱點(diǎn)問(wèn)題和數(shù)據(jù)傾斜113.rowkey散列原則把主鍵哈希后當(dāng)成rowkey的頭部。4.4.rowkey唯一原則必須在設(shè)計(jì)上保證其唯一性,rowkey是按照字典順序排序存儲(chǔ)的,因此,設(shè)計(jì)rowkey的時(shí)候,要充分利用這個(gè)排序的特點(diǎn),將經(jīng)常讀取的數(shù)據(jù)存儲(chǔ)到一塊,將最近可能會(huì)被訪問(wèn)的數(shù)據(jù)放到一塊。預(yù)分區(qū)和rowkey的散列設(shè)計(jì)——解決熱點(diǎn)問(wèn)題和數(shù)據(jù)傾斜125.時(shí)間戳反轉(zhuǎn)如果數(shù)據(jù)需要保留多個(gè)版本,可以使用反轉(zhuǎn)的時(shí)間戳作為rowkey的一部分,用Long.Max_Value-timestamp追加到key的末尾,例如[key][reverse_timestamp],[key]的最新值可以通過(guò)scan[key]獲得[key]的第一條記錄,因?yàn)镠Base中rowkey是有序的,第一條記錄是最后錄入的數(shù)據(jù)。整個(gè)rowkey(timestamp并不是必要的,視業(yè)務(wù)而定)rowkey=哈希(主鍵<遞增的id\手機(jī)號(hào)碼等>)+Long.Max_Value-timestamp預(yù)分區(qū)splitkeys選取13(1)取樣,先隨機(jī)生成一定數(shù)量的rowkey(10萬(wàn)、100萬(wàn)),將取樣數(shù)據(jù)按升序排序放到一個(gè)集合里。(2)根據(jù)預(yù)分區(qū)的region個(gè)數(shù),對(duì)整個(gè)集合平均分割,即是相關(guān)的splitkeys。(3)HBaseAdmin.createTable(HTableDescriptortableDescriptor,byte[][]splitkeys)可以指定預(yù)分區(qū)的 splitkey,即指定region間的rowkey臨界值。一對(duì)多設(shè)計(jì)和寬表14假設(shè),現(xiàn)在有用戶表和銀行卡表,一個(gè)用戶對(duì)應(yīng)多張銀行卡傳統(tǒng)的關(guān)系型數(shù)據(jù)(RMDB),我們會(huì)設(shè)計(jì)成兩張表,通過(guò)關(guān)聯(lián)查詢獲取數(shù)據(jù);如果Hbase也設(shè)計(jì)成兩張表,那么如果想獲取用戶和銀行卡的數(shù)據(jù),就得查詢兩次才能獲取到數(shù)據(jù)。如果設(shè)計(jì)成一張寬表,把用戶數(shù)據(jù)放到銀行卡的表上,也就是用戶的數(shù)據(jù)被存放了多次,但是獲取數(shù)據(jù)的時(shí)候只需要查詢一次就能把用戶和用戶銀行
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- YY/T 1949-2024人工智能醫(yī)療器械數(shù)據(jù)集專用要求:糖尿病視網(wǎng)膜病變眼底彩照
- 度合同制速記服務(wù)與保密全文
- 水產(chǎn)養(yǎng)殖合同范本專業(yè)版
- 租賃合同范本:車輛租賃協(xié)議
- 建筑設(shè)計(jì)服務(wù)合同樣本版
- 生態(tài)林地保護(hù)承包合同書樣本
- 企業(yè)貸款合同、利息計(jì)算標(biāo)準(zhǔn)
- 企業(yè)風(fēng)險(xiǎn)控制反擔(dān)保合同模板
- 公租房解除合同范本
- 化工原料采購(gòu)合同范本大全
- DLT 5630-2021 輸變電工程防災(zāi)減災(zāi)設(shè)計(jì)規(guī)程-PDF解密
- 2024年新疆維吾爾自治區(qū)專升本考試大學(xué)政治測(cè)試題含解析
- 邊坡噴錨施工工藝
- 2016-2023年婁底職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 海鮮酒樓營(yíng)銷策劃方案
- 電能計(jì)量裝置配置規(guī)范
- 有償義工招募方案
- 冬春季節(jié)傳染病防控(流感)
- 潛在供應(yīng)商審核報(bào)告模版13-02
- 《臨床疾病概論》課件
- 安全生產(chǎn)費(fèi)用使用臺(tái)賬
評(píng)論
0/150
提交評(píng)論