一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

數(shù)據(jù)產(chǎn)品必須了解的分布式存儲系統(tǒng)

 產(chǎn)品經(jīng)理是條狗 2017-09-11

 Hbase是什么

HBase是一種構(gòu)建在HDFS之上的分布式、面向列的存儲系統(tǒng)。在需要實時讀寫、隨機訪問超大規(guī)模數(shù)據(jù)集時,可以使用HBase。

盡管已經(jīng)有許多數(shù)據(jù)存儲和訪問的策略和實現(xiàn)方法,但事實上大多數(shù)解決方案,特別是一些關(guān)系類型的,在構(gòu)建時并沒有考慮超大規(guī)模和分布式的特點。許多商家通過復(fù)制和分區(qū)的方法來擴充數(shù)據(jù)庫使其突破單個節(jié)點的界限,但這些功能通常都是事后增加的,安裝和維護都和復(fù)雜。同時,也會影響RDBMS的特定功能,例如聯(lián)接、復(fù)雜的查詢、觸發(fā)器、視圖和外鍵約束這些操作在大型的RDBMS上的代價相當高,甚至根本無法實現(xiàn)。

HBase從另一個角度處理伸縮性問題。它通過線性方式從下到上增加節(jié)點來進行擴展。HBase不是關(guān)系型數(shù)據(jù)庫,也不支持SQL,但是它有自己的特長,這是RDBMS不能處理的,HBase巧妙地將大而稀疏的表放在商用的服務(wù)器集群上。

HBase 是Google Bigtable 的開源實現(xiàn),與Google Bigtable 利用GFS作為其文件存儲系統(tǒng)類似, HBase 利用Hadoop HDFS 作為其文件存儲系統(tǒng);Google 運行MapReduce 來處理Bigtable中的海量數(shù)據(jù), HBase 同樣利用Hadoop MapReduce來處理HBase中的海量數(shù)據(jù);Google Bigtable 利用Chubby作為協(xié)同服務(wù), HBase 利用Zookeeper作為對應(yīng)。

HBase的特點

  1. 大:一個表可以有上億行,上百萬列。
  2. 面向列:面向列表(簇)的存儲和權(quán)限控制,列(簇)獨立檢索。
  3. 稀疏:對于為空(NULL)的列,并不占用存儲空間,因此,表可以設(shè)計的非常稀疏。
  4. 無模式:每一行都有一個可以排序的主鍵和任意多的列,列可以根據(jù)需要動態(tài)增加,同一張表中不同的行可以有截然不同的列。
  5. 數(shù)據(jù)多版本:每個單元中的數(shù)據(jù)可以有多個版本,默認情況下,版本號自動分配,版本號就是單元格插入時的時間戳。
  6. 數(shù)據(jù)類型單一:HBase中的數(shù)據(jù)都是字符串,沒有類型。

HBase的高并發(fā)和實時處理數(shù)據(jù)

Hadoop是一個高容錯、高延時的分布式文件系統(tǒng)和高并發(fā)的批處理系統(tǒng),不適用于提供實時計算;HBase是可以提供實時計算的分布式數(shù)據(jù)庫,數(shù)據(jù)被保存在HDFS分布式文件系統(tǒng)上,由HDFS保證期高容錯性,但是再生產(chǎn)環(huán)境中,HBase是如何基于hadoop提供實時性呢? HBase上的數(shù)據(jù)是以StoreFile(HFile)二進制流的形式存儲在HDFS上block塊兒中;但是HDFS并不知道的hbase存的是什么,它只把存儲文件是為二進制文件,也就是說,hbase的存儲數(shù)據(jù)對于HDFS文件系統(tǒng)是透明的。下面是HBase文件在HDFS上的存儲示意圖。

HBase HRegion servers集群中的所有的region的數(shù)據(jù)在服務(wù)器啟動時都是被打開的,并且在內(nèi)沖初始化一些memstore,相應(yīng)的這就在一定程度上加快系統(tǒng)響 應(yīng);而Hadoop中的block中的數(shù)據(jù)文件默認是關(guān)閉的,只有在需要的時候才打開,處理完數(shù)據(jù)后就關(guān)閉,這在一定程度上就增加了響應(yīng)時間。

從根本上說,HBase能提供實時計算服務(wù)主要原因是由其架構(gòu)和底層的數(shù)據(jù)結(jié)構(gòu)決定的,即由LSM-Tree + HTable(region分區(qū)) + Cache決定——客戶端可以直接定位到要查數(shù)據(jù)所在的HRegion server服務(wù)器,然后直接在服務(wù)器的一個region上查找要匹配的數(shù)據(jù),并且這些數(shù)據(jù)部分是經(jīng)過cache緩存的。具體查詢流程如下圖所示:

具體數(shù)據(jù)訪問流程如下:

  1. Client會通過內(nèi)部緩存的相關(guān)的-ROOT-中的信息和.META.中的信息直接連接與請求數(shù)據(jù)匹配的HRegion server;
  2. 然后直接定位到該服務(wù)器上與客戶請求對應(yīng)的Region,客戶請求首先會查詢該Region在內(nèi)存中的緩存——Memstore(Memstore是一個按key排序的樹形結(jié)構(gòu)的緩沖區(qū));
  3. 如果在Memstore中查到結(jié)果則直接將結(jié)果返回給Client;
  4. 在Memstore中沒有查到匹配的數(shù)據(jù),接下來會讀已持久化的StoreFile文件中的數(shù)據(jù)。前面的章節(jié)已經(jīng)講過,StoreFile也是按 key排序的樹形結(jié)構(gòu)的文件——并且是特別為范圍查詢或block查詢優(yōu)化過的,;另外HBase讀取磁盤文件是按其基本I/O單元(即 HBase Block)讀數(shù)據(jù)的。

具體就是過程就是:

如果在BlockCache中能查到要造的數(shù)據(jù)則這屆返回結(jié)果,否則就讀去相應(yīng)的StoreFile文件中讀取一block的數(shù)據(jù),如果還沒有讀到要查的 數(shù)據(jù),就將該數(shù)據(jù)block放到HRegion Server的blockcache中,然后接著讀下一block塊兒的數(shù)據(jù),一直到這樣循環(huán)的block數(shù)據(jù)直到找到要請求的數(shù)據(jù)并返回結(jié)果;如果將該 Region中的數(shù)據(jù)都沒有查到要找的數(shù)據(jù),最后接直接返回null,表示沒有找的匹配的數(shù)據(jù)。當然blockcache會在其大小大于一的閥值(heapsize * hfile.block.cache.size * 0.85)后啟動基于LRU算法的淘汰機制,將最老最不常用的block刪除。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    成人精品视频一区二区在线观看| 亚洲国产四季欧美一区| 91欧美视频在线观看免费| 国产不卡的视频在线观看| 懂色一区二区三区四区| 夜色福利久久精品福利| 国产亚洲视频香蕉一区| 黄色激情视频中文字幕| 国产肥妇一区二区熟女精品| 激情五月综五月综合网| 亚洲国产精品一区二区| 成人免费在线视频大香蕉| 激情亚洲一区国产精品久久| 狠狠做深爱婷婷久久综合| 偷拍偷窥女厕一区二区视频| 亚洲一区二区三区在线免费| 天堂热东京热男人天堂| 日韩成人动画在线观看| 国产综合欧美日韩在线精品| 超碰在线播放国产精品| 日韩欧美国产亚洲一区| 99热九九在线中文字幕| 日本妇女高清一区二区三区| 国内胖女人做爰视频有没有| 91香蕉国产观看免费人人| 熟妇人妻av中文字幕老熟妇| 亚洲欧洲成人精品香蕉网| 老司机精品视频在线免费| 成人国产一区二区三区精品麻豆| 欧美日韩国内一区二区| 亚洲深夜精品福利一区| 亚洲中文字幕熟女丝袜久久| 激情中文字幕在线观看| 久久亚洲国产视频三级黄 | 亚洲av在线视频一区| 欧美日韩亚洲国产av| 少妇人妻一级片一区二区三区| 欧美日韩视频中文字幕| 国语对白刺激高潮在线视频| 国产成人精品国内自产拍| 亚洲香艳网久久五月婷婷|