2012-04-05 70 views
2

我對hadoop還是比較陌生的,通過做一些示例練習我已經學習了一些,但是我在練習中遇到了一個問題。很多應用程序似乎都適用於批處理(如日誌文件數據),但我不確定hbase如何適應這裏?Hadoop Hbase工作流程

將日誌文件數據存儲在hbase中然後處理並將其輸出到某種其他存儲格式是否很常見?將原始日誌文件傳入hadoop然後將輸出存儲在hbase中更常見嗎?我想這裏的真正問題通常是hbase用作hadoop的輸入或輸出,或者兩者兼而有之?

回答

4

HBase適用於需要對數據進行隨機,低延遲訪問的任何地方,而Hadoop生態系統其餘大部分內容都是按照批處理方式提供的。

要使用您的日誌解析示例,您可以通過MapReduce處理存儲在HDFS中的日誌文件,但接下來呢?想必你會看到一段時間內的流量模式(分鐘,小時,天,等等)。如果您將結果以時間戳存儲在HBase中作爲行鍵,那麼您可以高效地查詢特定的日期範圍(例如,「向我顯示上週的所有數據」。)HBase將以比經典快得多的速度返回MapReduce,因爲它不需要掃描上個月的所有數據,去年等,而MapReduce會。

+0

這是有道理的。您是否有希望將輸入數據存儲在hbase中的情況? – 2012-04-05 21:01:20

+0

當然 - 如果你有多臺機器,比如HBase,對於處理這個問題是相當不錯的。如果您正在運行MapReduce作業來處理日誌,那麼如果這些作業在HBase RegionServers上同時運行Mappers和Reducers(輸入和輸出),那麼這些作業將更有效率,因爲那樣數據不太可能需要複製網絡到目標存儲節點。 – 2012-04-05 21:12:58

+0

很酷,謝謝。欣賞輸入。 – 2012-04-05 21:17:05

2

Flume是很多人將他們的日誌文件連接起來以便在數據生成時對其進行實時處理的方式。您可以從每個日誌文件創建一個源文件,並與您的HBase實例同步

另請參見OpenTSDB,因爲它們有一個非常好的系統,用於在HBase之上存儲羣集度量標準。您可能可以重新使用一些基礎架構來執行日誌分析。