Hadoop in Action中的第4章練習4是關於實現計算時間序列移動平均值的線性過濾器。也就是說,給定N和一系列時間戳的值a(t)的,計算y,其中Hadoop中的線性過濾器(FIR)(Hadoop in Action練習)
y(t) = a(t)*1/N + a(t-1)*1/N + ... + a(t-N)*1/N.
我具有MapReduce的實施這一麻煩。 Reducer需要接收計算y中元素所需的N個記錄。即使記錄按時間順序排列,這些N記錄可能會分成兩個映射器。在映射器中發射什麼樣的密鑰可以保證同一個reducer接收這些N記錄?他們的時間戳都是不同的,因此沒有用作關鍵字。
還是我完全在我的方法?我會很感激提示。
非常感謝布倫特,這是有道理的。在接下來的幾天裏我不會執行它,但我會回到這個問題上。 – 2011-04-01 07:01:47
我試圖再次實現這一點。布倫特,在你的方法中,時間戳是否需要固定的時間間隔?如果我遇到t並想要發出密鑰t + 1,t + 2,...,我需要能夠計算t + n。如果可能的話,你的解決方案是有效的,但是如果它們有些隨機,就像外部事件觸發的時間戳一樣? – 2011-04-09 07:30:15