




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
HBase數(shù)據(jù)傾斜2知識目標分布式與并行處理熱點和數(shù)據(jù)傾斜存儲方式引起的熱點問題和數(shù)據(jù)傾斜01能力目標解決數(shù)據(jù)傾斜和熱點問題ColumnFamily列族設計數(shù)量一對多設計和寬表02學習目標3目錄01分布式與并行處理02什么是熱點和數(shù)據(jù)傾斜03預分區(qū)和rowkey的散列設計——解決數(shù)據(jù)傾斜和熱點問題04預分區(qū)splitkeys選取05一對多設計和寬表分布式與并行處理41.分布式系統(tǒng)通常,我們說分布式系統(tǒng)的時候,我們都會想到Dubbo框架和SpringCloud框架。這兩個框架現(xiàn)在應該是國內用的比較多的兩個分布式框架了,特點都是很容易把服務部署在多臺機器組成一個高可用的服務集群來應對高并發(fā)。分布式與并行處理52.多線程和并行處理我們都知道多線程是怎樣的一個概念,它就是一個并行處理的例子,它是在一臺計算機并行的。多線程的概念是,多個線程在搶占資源,搶到了資源的線程會運作,其它的線程在等待,所以并不是真正意義上的并行,只是因為計算機的運行速度比較快,所以我們可以認為它是并行處理的。什么是熱點和數(shù)據(jù)傾斜6熱點發(fā)生在大量的client直接訪問集群的一個或極少數(shù)個節(jié)點(訪問可能是讀,寫或者其他操作)。
大量訪問會使熱點region所在的單個機器超出自身承受能力,引起性能下降甚至region不可用,這也會影響同一個RegionServer上的其他region,由于主機無法服務其他region的請求,造成資源浪費。 設計良好的數(shù)據(jù)訪問模式以使集群被充分,均衡的利用。?什么是熱點和數(shù)據(jù)傾斜7數(shù)據(jù)傾斜,Hbase可以被劃分為多個Region,但是默認創(chuàng)建時只有一個Region分布在集群的一個節(jié)點上,數(shù)據(jù)一開始時都集中在這個Region,也就是集中在這一個節(jié)點上,就算region存儲達到臨界值時被劃分,數(shù)據(jù)也是存儲在少數(shù)節(jié)點上。這就是數(shù)據(jù)傾斜。HBase的存儲方式引起的熱點問題和數(shù)據(jù)傾斜8HBase中的行是按照rowkey的字典順序排序的,這種設計優(yōu)化了scan操作,可以將相關的行以及會被一起讀取的行存取在臨近位置,便于scan。rowkey設計是熱點的源頭。這種設計是分布式系統(tǒng)一個很大的弊端,而且這樣導致數(shù)據(jù)傾斜和熱點問題,從而導致集群的資源得不到很好的利用。預分區(qū)和rowkey的散列設計——解決熱點問題和數(shù)據(jù)傾斜91.預分區(qū)預分區(qū),讓表的數(shù)據(jù)可以均衡的分散在集群中,而不是默認只有一個region分布在集群的一個節(jié)點上。(預分區(qū)個數(shù)=節(jié)點的倍數(shù),看數(shù)據(jù)量估算,region不足了會被分列,預分區(qū)后每個region的rowkey還是有序的)一個RegionServer能管理10-1000個Region,0.92.x版本后,默認的Region大小為10G,向下可以支持256MB,向上可以支持到20G,也就是說,每個RegionServer能管理的數(shù)據(jù)量為2.5GB-20TB。預分區(qū)和rowkey的散列設計——解決熱點問題和數(shù)據(jù)傾斜102.Rowkey長度原則(最好不超過16字節(jié))Rowkey是一個二進制碼流,Rowkey的長度被很多開發(fā)者建議說設計在10~100個字節(jié),不過建議是越短越好,不要超過16個字節(jié)。(1)數(shù)據(jù)的持久化文件HFile中是按照KeyValue存儲的,如果Rowkey過長比如100個字節(jié),1000萬列數(shù)據(jù)光Rowkey就要占用100*1000萬=10億個字節(jié),將近1G數(shù)據(jù),這會極大影響HFile的存儲效率;(2)MemStore將緩存部分數(shù)據(jù)到內存,如果Rowkey字段過長內存的有效利用率會降低,系統(tǒng)將無法緩存更多的數(shù)據(jù),這會降低檢索效率。因此Rowkey的字節(jié)長度越短越好。(3)目前操作系統(tǒng)是都是64位系統(tǒng),內存8字節(jié)對齊??刂圃?6個字節(jié),8字節(jié)的整數(shù)倍利用操作系統(tǒng)的最佳特性。預分區(qū)和rowkey的散列設計——解決熱點問題和數(shù)據(jù)傾斜113.rowkey散列原則把主鍵哈希后當成rowkey的頭部。4.4.rowkey唯一原則必須在設計上保證其唯一性,rowkey是按照字典順序排序存儲的,因此,設計rowkey的時候,要充分利用這個排序的特點,將經(jīng)常讀取的數(shù)據(jù)存儲到一塊,將最近可能會被訪問的數(shù)據(jù)放到一塊。預分區(qū)和rowkey的散列設計——解決熱點問題和數(shù)據(jù)傾斜125.時間戳反轉如果數(shù)據(jù)需要保留多個版本,可以使用反轉的時間戳作為rowkey的一部分,用Long.Max_Value-timestamp追加到key的末尾,例如[key][reverse_timestamp],[key]的最新值可以通過scan[key]獲得[key]的第一條記錄,因為HBase中rowkey是有序的,第一條記錄是最后錄入的數(shù)據(jù)。整個rowkey(timestamp并不是必要的,視業(yè)務而定)rowkey=哈希(主鍵<遞增的id\手機號碼等>)+Long.Max_Value-timestamp預分區(qū)splitkeys選取13(1)取樣,先隨機生成一定數(shù)量的rowkey(10萬、100萬),將取樣數(shù)據(jù)按升序排序放到一個集合里。(2)根據(jù)預分區(qū)的region個數(shù),對整個集合平均分割,即是相關的splitkeys。(3)HBaseAdmin.createTable(HTableDescriptortableDescriptor,byte[][]splitkeys)可以指定預分區(qū)的 splitkey,即指定region間的rowkey臨界值。一對多設計和寬表14假設,現(xiàn)在有用戶表和銀行卡表,一個用戶對應多張銀行卡傳統(tǒng)的關系型數(shù)據(jù)(RMDB),我們會設計成兩張表,通過關聯(lián)查詢獲取數(shù)據(jù);如果Hbase也設計成兩張表,那么如果想獲取用戶和銀行卡的數(shù)據(jù),就得查詢兩次才能獲取到數(shù)據(jù)。如果設計成一張寬表,把用戶數(shù)據(jù)放到銀行卡的表上,也就是用戶的數(shù)據(jù)被存放了多次,但是獲取數(shù)據(jù)的時候只需要查詢一次就能把用戶和用戶銀行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠區(qū)道路劃線合同范例
- 醫(yī)療設備經(jīng)濟合同范本
- 農資分公司合同范本
- 個體戶散伙合同范本
- 加盟德佑合同范本
- 中央空調改造合同范本
- 醫(yī)療器材售賣合同范本
- 北京建委房屋租賃合同范本
- 廠家配件采購合同范本
- 3投資合同范本
- VTE防治在臨床科室的落地
- 2025年度個人住房買賣合同(帶家居家具)
- 生產車間布局優(yōu)化與現(xiàn)場改善的策略研究
- 文化自信-最炫中國風(2024年內蒙古赤峰中考語文試卷非連續(xù)性文本閱讀試題)
- 2025年南京信息職業(yè)技術學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 2024年宜春職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 2025年交通運輸部廣州打撈局招聘事業(yè)編制人員13人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 202403青少年軟件編程Python等級考試試卷三級真題(含答案和解析)
- 校園養(yǎng)成教育
- 研究生考試考研思想政治理論(101)試題與參考答案(2024年)
- 2025全國保安員考試題庫(含答案)
評論
0/150
提交評論