Hadoop第13周練習—HBase作業(yè)
1 書面作業(yè)1:舉例子說明HBase相對簡單
1.1 書面作業(yè)題目1
1.2 回答
2 書面作業(yè)2:設計HBase存儲站內(nèi)短信
2.1 書面作業(yè)題目2
2.2 回答
1書面作業(yè)1:舉例子說明HBase相對簡單
1.1 書面作業(yè)題目1
請舉出一例子,使用關系型數(shù)據(jù)庫較難進行數(shù)據(jù)建模,而采用HBase則相對簡單
1.2 回答
HBase的應用場景
l 存儲大量的數(shù)據(jù)(100s TB級數(shù)據(jù))
l 需要很高的寫吞吐量
l 在大規(guī)模數(shù)據(jù)集中進行很好性能的隨機訪問(按列)
l 需要進行優(yōu)雅的數(shù)據(jù)擴展
l 結構化和半結構化的數(shù)據(jù)
l 不需要全部的關系數(shù)據(jù)庫特性,例如交叉列、交叉表、事務、連接等等
相關例子
l 淘寶的交易歷史記錄。數(shù)據(jù)量巨大無容置疑,面向普通用戶的請求需即時響應;捕獲增量數(shù)據(jù)、網(wǎng)絡爬蟲、廣告效果和點擊流等等。
l 動態(tài)擴展系統(tǒng)容量,例如:webPage DB。
2書面作業(yè)2:設計HBase存儲站內(nèi)短信
2.1 書面作業(yè)題目2
用HBase存儲社交網(wǎng)站站內(nèi)短信信息,要求記錄發(fā)送者、接受者、時間、內(nèi)容,有關的查詢是發(fā)送者可以列出他所有(或按時間段)發(fā)出的信息列表(按時間降序排列),接收者可以列出他所有(或按時間段)收到的信息列表(按時間降序排列)。請進行數(shù)據(jù)建模。
2.2 回答
兩種方法:
方法一:建兩個表,發(fā)送者表,接收者表
表1:發(fā)送者表:
行鍵:發(fā)送者id
列族和列:接收者,短信內(nèi)容,時間戳(系統(tǒng)自動生成)
表2:接收者表:
行鍵:接收者id
列族和列:發(fā)送者,短信內(nèi)容,時間戳(系統(tǒng)自動生成)
(1)查詢是發(fā)送者可以列出他所有(或按時間段)發(fā)出的信息列表,通過在發(fā)送者表查詢。
(2)查詢是接收者可以列出他所有(或按時間段)收到的信息列表(按時間降序排列),通過接受者表查詢,結合時間戳。
方法二:建一個表,使用復合行鍵
通過使用標識、發(fā)送者id、接收者id做成復合行健,其中:標識用來區(qū)分發(fā)送還是接收,標識0為發(fā)送,標識1為接收,
l 當標識為0是,表示發(fā)送,復合行健為:標識-發(fā)送者id-接收者id。
l 當標識為1是,表示接收,復合行健為:標識-接收者id- 發(fā)送者id。
這樣設計的目的是方便使用hbase的范圍查詢功能,列族和列:短信內(nèi)容,時間戳(系統(tǒng)自動生成)
(1)查詢是發(fā)送者可以列出他所有(或按時間段)發(fā)出的信息列表,通過使用范圍查詢,查詢“0-發(fā)送者id-%”的復合行健。
(2)查詢是接收者可以列出他所有(或按時間段)收到的信息列表(按時間降序排列),查詢“1-接收者id-%”的復合行健,并結合時間戳。

浙公網(wǎng)安備 33010602011771號