Hadoop第13周練習—HBase作業


1    書面作業1:舉例子說明HBase相對簡單... 3

1.1     書面作業題目1. 3

1.2     回答... 3

2    書面作業2:設計HBase存儲站內短信... 3

2.1     書面作業題目2. 3

2.2     回答... 3

 

1書面作業1:舉例子說明HBase相對簡單

1.1  書面作業題目1

請舉出一例子,使用關系型數據庫較難進行數據建模,而采用HBase則相對簡單

1.2  回答

HBase的應用場景

l  存儲大量的數據(100s TB級數據)

l  需要很高的寫吞吐量

l  在大規模數據集中進行很好性能的隨機訪問(按列)

l  需要進行優雅的數據擴展

l  結構化和半結構化的數據

l  不需要全部的關系數據庫特性,例如交叉列、交叉表、事務、連接等等

相關例子

l  淘寶的交易歷史記錄。數據量巨大無容置疑,面向普通用戶的請求需即時響應;捕獲增量數據、網絡爬蟲、廣告效果和點擊流等等。

l  動態擴展系統容量,例如:webPage DB

2書面作業2:設計HBase存儲站內短信

2.1  書面作業題目2

HBase存儲社交網站站內短信信息,要求記錄發送者、接受者、時間、內容,有關的查詢是發送者可以列出他所有(或按時間段)發出的信息列表(按時間降序排列),接收者可以列出他所有(或按時間段)收到的信息列表(按時間降序排列)。請進行數據建模。

2.2  回答

兩種方法:

方法一:建兩個表,發送者表,接收者表

1:發送者表:

行鍵:發送者id

列族和列:接收者,短信內容,時間戳(系統自動生成)

2:接收者表:

行鍵:接收者id

列族和列:發送者,短信內容,時間戳(系統自動生成)

 

1)查詢是發送者可以列出他所有(或按時間段)發出的信息列表,通過在發送者表查詢。

2)查詢是接收者可以列出他所有(或按時間段)收到的信息列表(按時間降序排列),通過接受者表查詢,結合時間戳。

 

方法二:建一個表,使用復合行鍵

通過使用標識、發送者id、接收者id做成復合行健,其中:標識用來區分發送還是接收,標識0為發送,標識1為接收,

l  當標識為0是,表示發送,復合行健為:標識-發送者id-接收者id

l  當標識為1是,表示接收,復合行健為:標識-接收者id- 發送者id

這樣設計的目的是方便使用hbase的范圍查詢功能,列族和列:短信內容,時間戳(系統自動生成)

1)查詢是發送者可以列出他所有(或按時間段)發出的信息列表,通過使用范圍查詢,查詢“0-發送者id-%”的復合行健。

2)查詢是接收者可以列出他所有(或按時間段)收到的信息列表(按時間降序排列),查詢“1-接收者id-%”的復合行健,並結合時間戳。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM