2015-01-05 57 views
3

我想使用AWS EMR查詢我要寫入S3的大型日誌文件。我可以用我喜歡的任何方式設計文件。數據創建速度爲10K條目/分鐘。Map Reduce - 如何規劃數據文件

日誌由幾十個數據點,我想收集數據(年)很長一段時間來比較趨勢等

什麼是最好的做法,創建這樣的文件,這將是存儲在S3上並由AWS EMR羣集查詢?

什麼是最佳文件大小?我應該在小時基礎上創建單獨的文件嗎?

命名文件的最佳方式是什麼?

我應該把它們放在每日/每小時桶或全部在同一個桶裏嗎?

什麼是處理事情的最佳方式,例如在一段時間後添加一些數據或更改我使用的數據結構?

我是否應該壓縮東西,例如將域名從網址中排除或保留儘可能多的數據?

有沒有像分區的概念(數據是基於100個網站,所以我可以使用站點ID)。我必須能夠一起查詢所有數據,或者通過分區查詢。

謝謝!

回答

0

在我看來,你應該使用小時基桶來存儲s3中的數據,然後使用管道安排你的MR作業來清理數據。
一旦您清理了數據,您可以將其保留在s3中的某個位置,然後您可以每小時運行一次數據管道,延遲1小時,並將其與MR管道相關聯,以便將此過程數據置入紅移。

因此,在一天的凌晨3點,您將有3小時的處理數據在s3和2小時內處理成紅移dB。

要做到這一點,你可以有1臺機器專門用於運行管道,並且在該機器上,您可以定義shell腳本/ perl/python或腳本以將數據加載到dB。 您可以使用AWS bucketing格式化程序設置年,月,日,時等。例如,

{格式(minusHours(@ scheduledStartTime,2), 'YYYY')} /毫米=#{格式(minusHours(@ scheduledStartTime,2), 'MM')}/DD =#{格式(minusHours (@ scheduledStartTime,2),'dd')}/hh =#{format(minusHours(@ scheduledStartTime,2),'HH')}/*