現在我想要創建一個全局雙變量(成員),可以通過MapReduce作業中的每個Mapper/Reducer來訪問和更改它。起初,我試圖在我的主要java文件中聲明一個靜態雙成員,但它似乎有問題,因爲每個映射器/ reducer在單獨的JVM上運行,並且可以正確更改和訪問該成員。如何在Hadoop MapReduce的Java實現中創建全局變量?
我知道int變量有counter
機制。但是如果我想創建一個全局雙變量,我該怎麼做?
我的最終目標是總結一些在所有映射器/縮減器中都是雙格式的東西。如果我不能或不應該創建全局變量,是否有其他方法可以實現該目標?
全局可變變量基本上與使用map/reduce可以完成的操作相反。甚至不要嘗試去做。即使你可以模仿它,這也會破壞map/reduce的整個目的,並停止並行化的生效。 –
@LouisWasserman但是如果我想總結一些在mappers或reducer中是雙重的東西呢? – Denzel
@LouisWasserman我已經將這些添加到問題中。 – Denzel