如何將Mapper中收集的少量元數據傳遞給Reducer?在我的具體問題中,我只想通過兩個長的值,所以我不會使用MultipleOutputFormat或MultipleOutputs這些。
一些變體我曾嘗試:將少量值從Mapper傳遞到Reducer
(1)
映射
context.getCounter("Countergroup", "Counter").increment(1);
減速
counter = context.getCounter("Countergroup", "Counter").getValue();
計數器不定時更新,所以Reducer中的函數調用將返回0值。
(2)
映射
context.getConfiguration().setInt("Counter", countTotal);
減速
counter = context.getConfiguration().getInt("Counter", 0);
當然配置不能運行作業期間改變(是值得一試)。
已經有關於這個問題的問題,但我找不到工作答案。此外,API已經改變。我正在使用Hadoop 0.20.2。
類似的問題:
Passing values from Mapper to Reducer
Accessing a mapper's counter from a reducer (這看起來很有希望,但它好像它不與0.20.2 API工作)
嘗試動物園管理員。 –
這裏不可能。 – DMolloy