2013-03-05 18 views
2

我有很多來自運行網絡測試的文本報告和日誌文件。我想將這些報告和日誌存儲在數據存儲中,我可以根據解析的數據解析它們並運行報告。我還希望這個系統可以擴展,無論是在報告類型中,還是在它可以接受的日誌數量和查詢/報告數量方面都是如此。存儲和解析文本日誌和報告的理想系統

一個同事建議Hadoop爲可能滿足這種需求,而另一個團隊在我的組織說,他們使用Cassandra一個類似的項目(但有更多的數據,其中大部分是機器產生的)。我一直在閱讀關於Hadoop and Cassandra,我真的不確定使用類似的東西是否過分,並且每個日誌/報告類型是否具有定製解析器的關係數據庫會更加理智。

從我的理解Hadoop,我需要寫MapReduce功能反正解析每個類型的輸入數據,我想我需要做同樣的事情,如果我用Cassandra。我也讀了一些關於Hive的信息,聽起來好像可能有用,但我沒有深入研究它。

在我的情況下使用Hadoop或Cassandra(或其他)有什麼好處(如果有的話)?

任何形式的意見,將不勝感激。

回答

1

這裏是我從你的問題的描述得到:

  • 你有一些生成日誌和文本報告測試程序。你能否對這些數據的大小至少有一個粗略的概念?
  • 你想分析這些數據後,他們生成(即不需要實時分析)
  • 你想靈活的數據大小,你可以攝取和處理,以及查詢和分析的類型可以做

這裏關於你提到的工具的一些見解和注意事項:

  • 鑑於Hadoop集羣已經配置,配置單元可能是最簡單的解決方案:它可以讓你把你的數據,就好像它是一組表:SQL查詢,連接,依此類推...... Hive(大體上)與你的羣集很大一樣快,但你不會有即時答案:換句話說,你可以將它用於批處理操作,而不是用於交互式Web面板等等。

  • Cassandra對於存儲大量數據非常有用。它可以輕鬆擴展,功能強大且相對易於使用。根據您的要求,我認爲可能會擔心的是,它需要非常全面地考慮您將用於存儲數據的架構:架構將決定您可以做什麼以及之後不能做什麼。因此,如果您想執行更廣泛的分析,或者以今日無法想象的新方式讀取數據,則可能會因爲數據存儲在數據庫中的方式而變得不可能。

其他選擇,我更不熟悉:,豬HBase的(基於HDFS數據存儲)(如蜂房,查詢被編譯成Hadoop作業;什麼樣的變化是模型:不是SQL查詢您需要寫「流」)。

我建議嘗試使用Hive(或Pig),可能使用Amazon EMR等服務(這樣可以避免Hadoop集羣設置的麻煩)。

+0

我打算在系統中使用的單個結果文件從幾K到500K到1.5MB。整個數據集的大小目前並不太大,不適合單個驅動器。正確的,我不需要分析生成的數據,因爲它(大部分)是由運行測試的人員手動創建的。是的,你的第三點是最重要的一點。我希望有一個設置,可以輕鬆地將新類型的測試結果集成到現有配置中,並且如果我們決定將其用於更多數據(包括數量和類型),就可以進行擴展。 – dooz 2013-03-07 16:15:39

+0

感謝您的建議。我會更多地關注蜂巢和豬。我希望最終產品擁有一個至少讓一個視圖報告的Web前端,儘管在飛行中生成它們是理想的。現在,這個系統可能最多隻會被100個人(比如說)一次查詢,我懷疑它會超過幾TB的數據。 Hadoop + Hive/Pig在關係數據庫中設計表格併爲每種新數據類型編寫解析器方面有什麼優勢? – dooz 2013-03-07 16:23:30