日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

數(shù)據(jù)模型

傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),一張表(table)由行(row)和列(column)組成。相對(duì)Hbase分布式數(shù)據(jù)庫(kù)卻有所差別,可以把Hbase中的表理解成不同維度Map的集合。包含以下主要概念。

  • table
    hbase數(shù)據(jù)庫(kù)中的表。
  • row
    hbase數(shù)據(jù)庫(kù)表中的行。一張表包含多行。每一行由row key和一個(gè)或多個(gè)column的值組成。row key按字母表順序排序存儲(chǔ)。在設(shè)計(jì)表的row key時(shí),推薦按業(yè)務(wù)含義把相近的內(nèi)容放到一起,這樣可以有效地提高查詢(xún)效率。比如:一張表的row key為domain(域名)時(shí),對(duì)應(yīng)row key值最好設(shè)計(jì)成域名的倒敘值(如:org.Apache.www, org.apache.mail, org.apache.jira),hbase存儲(chǔ)時(shí)就可以把相同根域名的值放到同一塊存儲(chǔ)區(qū)域中,查詢(xún)起來(lái)更快。row key不宜設(shè)計(jì)過(guò)大,hbase中每個(gè)值都會(huì)保存相關(guān)keys (row key, family qualifier, and timestamp)。
  • column
    hbase數(shù)據(jù)庫(kù)表中的列。列由列族(column family)和列修飾符(column qualifier)構(gòu)成。兩者通過(guò)':'符號(hào)分隔。
  • column family
    框架性能方面的考慮,列族在物理上是多個(gè)列以及列中的相應(yīng)值的集合。列族中還會(huì)存儲(chǔ)一些基礎(chǔ)的元數(shù)據(jù),比如當(dāng)前列族內(nèi)容是否需要緩存在內(nèi)存中,row key編碼規(guī)則,數(shù)據(jù)壓縮方式等。一張hbase表中的列族不宜過(guò)多,一般建議不超過(guò)3個(gè),過(guò)多時(shí)在數(shù)據(jù)塊壓縮調(diào)整時(shí)會(huì)導(dǎo)致相互影響,從而影響性能。
  • column qualifier
    列修飾符被加入到某個(gè)列族中,并在列族中提供索引關(guān)聯(lián)列修飾符中的值。如:列族content中的html修飾符,表示content:html;另一個(gè)修飾符pdf,則表示content:pdf。
  • cell
    一個(gè)單元對(duì)應(yīng)表中一行(row)中列族(column family)下某個(gè)列修飾符(column qualifier)的值,包含具體值和時(shí)間戳(timestamp),其中時(shí)間戳用來(lái)標(biāo)識(shí)當(dāng)前值所屬的版本(version)。
  • timestamp
    cell值被寫(xiě)入時(shí),附帶會(huì)寫(xiě)入相應(yīng)的timestamp時(shí)間,作為該值的一個(gè)版本信息。timestamp默認(rèn)取當(dāng)前RegionServer服務(wù)機(jī)器上的時(shí)間,當(dāng)然你也可以自行指定時(shí)間值。

概念視圖

上面數(shù)據(jù)模型介紹的概念通過(guò)以下表格可以幫助理解。

聊聊HBase分布式數(shù)據(jù)庫(kù)設(shè)計(jì)那些事

 

將以上表格轉(zhuǎn)換成json格式

聊聊HBase分布式數(shù)據(jù)庫(kù)設(shè)計(jì)那些事

 

通過(guò)以上圖示,可以了解:

一個(gè)row key具有多個(gè)版本的數(shù)據(jù),不同版本通過(guò)不同的timestamp定義。

一個(gè)column family可以有多個(gè)column qualifier。

row key下的column family可以為空。

一個(gè)row key多版本數(shù)據(jù)按版本號(hào)時(shí)間倒序排列。當(dāng)查詢(xún)條件不帶版本號(hào)時(shí),以倒敘順序依次從上往下查找。如:rowkey="com.cnn.www",列族=contents:html,返回值t6版本的值。

NOSQL特性

hbase是一個(gè)nosql數(shù)據(jù)庫(kù),相較于RDBMS,它不支持傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的typed columns(列類(lèi)型), secondary indexes(二級(jí)索引), triggers(觸發(fā)器), and advanced query languages(高級(jí)查詢(xún)語(yǔ)言)等特性。它的長(zhǎng)處在數(shù)據(jù)存儲(chǔ),是真正意義上的分布式數(shù)據(jù)庫(kù)。通過(guò)添加RegionServer機(jī)器,即可實(shí)現(xiàn)hbase的線性和模塊化擴(kuò)展。

Hbase具有以下特性:

  • Strongly consistent reads/writes: HBase is not an "eventually consistent" DataStore. This makes it very suitable for tasks such as high-speed counter aggregation.(強(qiáng)一致讀寫(xiě),非最終一致性數(shù)據(jù)存儲(chǔ),這使得特別適合高速的count聚合運(yùn)算場(chǎng)景)。
  • Automatic sharding: HBase tables are distributed on the cluster via regions, and regions are automatically split and re-distributed as your data grows.(自動(dòng)分片:HBase表通過(guò)regions分布到集群的不同機(jī)器上,隨著數(shù)據(jù)增長(zhǎng),regions會(huì)自動(dòng)分裂和重新分配集群機(jī)器資源)
  • Automatic RegionServer failover(自動(dòng)RegionServer故障切換)
  • Hadoop/HDFS Integration: HBase supports HDFS out of the box as its distributed file system.(支持Hadoop和HDFS集成)
  • MapReduce: HBase supports massively parallelized processing via MapReduce for using HBase as both source and sink.(支持MapReduce計(jì)算框架)
  • JAVA Client API: HBase supports an easy to use Java API for programmatic access.(友好的java API集成)
  • Thrift/REST API: HBase also supports Thrift and REST for non-Java front-ends.(友好的Thrift/REST API集成)
  • Block Cache and Bloom Filters: HBase supports a Block Cache and Bloom Filters for high volume query optimization.(大容量查詢(xún)優(yōu)化,設(shè)計(jì)了塊緩存和布隆過(guò)濾)
  • Operational Management: HBase provides build-in web-pages for operational insight as well as JMX metrics.(內(nèi)置可視化界面操作工具)

表物理存儲(chǔ)模型

聊聊HBase分布式數(shù)據(jù)庫(kù)設(shè)計(jì)那些事

 

HBase表中的數(shù)據(jù)被拆分成不同的區(qū)域塊(Region),每個(gè)區(qū)域塊按一定規(guī)則分發(fā)到集群中不同的RegionServer上。通過(guò)這種把大表中數(shù)據(jù)打散到集群節(jié)點(diǎn)存儲(chǔ)的方式來(lái)實(shí)現(xiàn)大數(shù)據(jù)寬表的線性擴(kuò)展能力。

架構(gòu)

聊聊HBase分布式數(shù)據(jù)庫(kù)設(shè)計(jì)那些事

 

上圖Hbase總體架構(gòu)圖,包含了HMaster、HRegionServer、HRegion、Hlog、Store、MEMStore等邏輯結(jié)構(gòu)劃分。HBase以HDFS作為底層存儲(chǔ)框架,通過(guò)DFS Client進(jìn)行文件操作。HMaster負(fù)責(zé)把HRegion分配給HRegionServer。一個(gè)HRegionServer包含多個(gè)HRegion。HRegionServer中的多個(gè)Region共享一個(gè)HLog,HLog用來(lái)做災(zāi)備恢復(fù)。一個(gè)Region由一個(gè)或多個(gè)store組成,一個(gè)store對(duì)應(yīng)表中的一個(gè)列族,每個(gè)store包含memStore和其對(duì)應(yīng)的一個(gè)或多個(gè)StoreFile。StoreFile是HFile的輕量封裝,HFile是HDFS中的文件存儲(chǔ)格式,MemStore放在內(nèi)存中。

  • Client
    Client訪問(wèn)在新版本中將不直接操作zookeeper,通過(guò)HMaster的RPC遠(yuǎn)程端口間接獲取meta數(shù)據(jù)。Client獲得RegionServer Location后將直接對(duì)接RegionServer服務(wù),無(wú)需經(jīng)過(guò)HMaster轉(zhuǎn)接。
  • HMaster
    HMaster主要功能:把HRegion分配到某一個(gè)RegionServer;有RegionServer宕機(jī)了,HMaster可以把這臺(tái)機(jī)器上的Region遷移到active的RegionServer上;對(duì)HRegionServer進(jìn)行負(fù)載均衡;通過(guò)HDFS的dfs client接口回收垃圾文件(無(wú)效日志等)。
  • HRegionServer
    維護(hù)HMaster分配給它的HRegion,處理對(duì)這些HRegion的IO請(qǐng)求,也就是說(shuō)客戶(hù)端直接和HRegionServer打交道;負(fù)責(zé)切分正在運(yùn)行過(guò)程中變得過(guò)大的HRegion。
  • HRegion
    每個(gè)HRegion由多個(gè)Store構(gòu)成,每個(gè)Store保存一個(gè)列族(Columns Family),表有幾個(gè)列族,則有幾個(gè)Store,每個(gè)Store由一個(gè)MemStore和多個(gè)StoreFile組成,MemStore是放在內(nèi)存中的,寫(xiě)到文件后就是StoreFile。StoreFile底層是以HFile的格式保存。
  • HLog
    HLog(WAL log):WAL意為write ahead log(預(yù)寫(xiě)日志),用來(lái)做災(zāi)難恢復(fù)使用,HLog記錄數(shù)據(jù)的變更,包括序列號(hào)和實(shí)際數(shù)據(jù),所以一旦region server 宕機(jī),就可以從log中回滾還沒(méi)有持久化的數(shù)據(jù)。
  • HFile
    HBase的數(shù)據(jù)最終是以HFile的形式存儲(chǔ)在HDFS中的,HBase中HFile有著自己的格式。

小結(jié)

本文簡(jiǎn)單介紹了Hbase分布式數(shù)據(jù)的數(shù)據(jù)模型、概念視圖、NOSQL特性、整體架構(gòu)內(nèi)容。對(duì)Hbase的一些關(guān)鍵概念有了初步認(rèn)識(shí),從整體上對(duì)框架有了全局的了解。

希望本文對(duì)初學(xué)HBase的讀者有所幫助,若有遺漏之處歡迎留言討論。

分享到:
標(biāo)簽:HBase
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定