GitHub項目Storm-HBase介紹
最近完成了一個GitHub項目:Storm-HBase,該項目是推ter Storm和Apache HBase的結合,它使用HBase cluster作為Storm的Spout數據源,目前只是初步實現,后續會進一步完善。
HBaseSpout根據時間戳范圍[start_timestamp, stop_timestamp],持續不間斷地從HBase cluster讀取流數據:
- 如果start_timestamp = 0,HBaseSpout將默認從3分鐘前的數據開始讀取并發送到Storm cluster;否則從用戶指定的start_timestamp開始讀取數據。
- 如果stop_timestamp = 0, HBaseSpout將默認讀取到當前時間的數據,并隨著時間流動持續地讀取新的數據并發送到Storm cluster;否則讀取到用戶指定的stop_timestamp后停止讀取。 </ul>
- 最典型情況下,start_timestamp = 0 and stop_timestamp = 0,則從3分鐘前開始讀取發送數據,然后會同步掃描HBase cluster中的新數據,并發送給Storm cluster,適合用戶實時計算的情景。
- 出現問題的情況下,例如Storm cluster重啟,計算任務狀態被丟失,此時可能需要能夠Spout進行數據的回傳(data rewind),通過指定[start_timestamp, stop_timestamp]可以滿足這一需求。 </ul>
- HBase表的rowkey形式為[shardingkey, timestamp, ...];
- shardingkey占據第1個byte,表示表中數據的分區數,一般是100以內,所以這里使用了short類型存儲;
- timestamp占據第2~5個byte,表示數據中的時間戳信息,這里timestamp是秒級的UNIX時間戳值,使用了int型存儲。 </ul>
以上有關[start_timestamp, stop_timestamp]的設計,是為了適應不同的運行模式:
Storm-HBase力求盡可能做到通用化,因此提取了Storm和HBase的配置信息。有關Storm-HBase的配置選項,可以在 GitHub工程的src/main/resources/storm.properties以及src/main/resources /hbase.properties文件中找到。如果你的HBase表的Schema結構與上述類似,那么只需要進行簡單的配置即可使用Storm- HBase。
目前的HBaseSpout實現基于以下假設:
更多關于Storm-HBase的介紹及進展,請參加項目的GitHub鏈接:https://github.com/ypf412/storm-hbase
轉自:http://www.cnblogs.com/panfeng412/archive/2012/08/06/storm-use-hbase-as-spout.html 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!