0
當項目被映射到基於鍵的簡化器時,單個簡化器是否會收到包含單個鍵的列表,或者簡化器是否包含散列到該簡化器的所有鍵?什麼在Hadoop Reducer中結束?
例如: 我有7個唯一的ID映射。
當我編寫我的reduce方法時,我是否可以假設當我遍歷列表中的所有元素時,我將只有一個唯一的ID?或者我可以在減速器中使用更多的一個ID嗎?
當項目被映射到基於鍵的簡化器時,單個簡化器是否會收到包含單個鍵的列表,或者簡化器是否包含散列到該簡化器的所有鍵?什麼在Hadoop Reducer中結束?
例如: 我有7個唯一的ID映射。
當我編寫我的reduce方法時,我是否可以假設當我遍歷列表中的所有元素時,我將只有一個唯一的ID?或者我可以在減速器中使用更多的一個ID嗎?
每次調用reduce()
時都會有一個鍵和一個或多個值。這是明顯的從Map.reduce()方法的簽名:reduce(KEYIN key, Iterable<VALUEIN> values, Context context)
一些例子:
Context.write()
10倍和10個不同的值,則降低()方法將被調用一次,並且values
迭代器將提供10個不同的值。Context.write()
10次,則reduce()
將被調用10次,每次使用不同的密鑰。請記住,這是對默認情況的簡化。您可以使用自定義分組比較器和其他技術來更改此行爲。另外,請記住,根據您的集羣的設置,各種減速器可能不在同一臺機器上運行,也不能在與映射器相同的機器上運行。