如果我想實時分析數十億行日誌以查明最前面的k個用戶模式,並且由於數據量巨大,有多個服務器餐飲服務器給用戶請求和在他們各自的機器上記錄數據,我該如何去做呢?從多臺服務器上實時彙總和分析日誌
我不是在尋找相同的開源實現,它可以幫助我實現上述任務,而是從每臺機器開始聚合日誌的方法(如果本地聚合可能不需要算法),並對全集進行分析,以基於一定的約束條件得到排名前幾位的日誌。
什麼應該是我應該操作的數據結構,以及應該如何處理它?請注意,這些日誌不斷生成,我們正在實時更新我們的結果。
如果我想實時分析數十億行日誌以查明最前面的k個用戶模式,並且由於數據量巨大,有多個服務器餐飲服務器給用戶請求和在他們各自的機器上記錄數據,我該如何去做呢?從多臺服務器上實時彙總和分析日誌
我不是在尋找相同的開源實現,它可以幫助我實現上述任務,而是從每臺機器開始聚合日誌的方法(如果本地聚合可能不需要算法),並對全集進行分析,以基於一定的約束條件得到排名前幾位的日誌。
什麼應該是我應該操作的數據結構,以及應該如何處理它?請注意,這些日誌不斷生成,我們正在實時更新我們的結果。
什麼應該是我應該操作的數據結構,以及應該怎麼做呢?
MapReduce傳統上用於此類任務,請嘗試Hadoop。 distributed grep
是一個學校的例子,許多人正在使用它來進行日誌管理。
這是我會怎麼做https://stackoverflow.com/a/6484592/760401
我必須說,我從來沒有做過它的數據這麼大的量,但:),雙方的Jabber/XMPP和CouchDB的爲他們的擴展能力是衆所周知的。
我完全理解你列出的工具,但我不是在尋找現有的工具,而是我自己做的方法。想象一下,我寫一個工具來完成這項任務。 –
@AbhishekJain:MapReduce是一個概念,Hadoop是一個實現。研究MapReduce是如何工作的,如何實現涉及數千個服務器和數據TB的分佈式計算是一件好事。你無法在一臺機器上處理那麼多的數據。 –
我同意你的看法,即MapReduce是一個概念,但它更適合於批量處理大量數據,並且在實時環境中表現不佳。我一直在使用MapReduce和Hadoop,但是如果我想每隔一段時間更新一次計算,那麼它可能不是一個好的選擇,因爲它有嚴格的批處理工作流程。我想要做的是基於實時發生的事件的一種增量處理。我知道風暴通過Twitter也許是一個很好的案例研究,但我想馬上做一個簡短的方法(時間約束:() –