我想將map任務中的某些值存儲到每個數據節點中的本地磁盤中。例如,將數據寫入每個數據節點中的本地磁盤
public void map (...) {
//Process
List<Object> cache = new ArrayList<Object>();
//Add value to cache
//Serialize cache to local file in this data node
}
我怎麼能存儲此緩存對象中的每個數據節點的本地磁盤,因爲如果我的map函數存儲這個緩存像上面,那麼性能將是可怕的,因爲I/O任務?
我的意思是有什麼辦法可以等待這個數據節點中的map任務完全運行,然後我們將這個緩存存儲到本地磁盤?或者Hadoop是否有解決此問題的功能?
請參閱下面的答案,希望它有助於。 –