我已閱讀了Apache和Yahoo在DistributedCache上的教程。但我仍然對一件事感到困惑。假設我有一個我想要複製到所有數據節點的文件。因此,我在作業Driver中使用 DistributedCache.addCacheFile(new URI(hdfsPath),job)
以使文件可用。然後,我在Mapper中調用DistributedCache.getLocalCacheFiles(job)
。Hadoop DistributedCache
現在,我想根據此文件的內容在數據節點上創建一個數組,以便每次map()運行時,都可以訪問數組的元素。我可以這樣做嗎?我很困惑,因爲如果我讀取緩存文件並在Mapper類中創建數組,它似乎會爲Mapper的每個新輸入創建數組,而不是每個Mapper創建一次。這部分實際上是如何工作的(即,我應該在何時/何時創建數組)?
我想我可能已經找到了我自己的問題的答案。它看起來好像在實例化Mapper時自動調用configure()方法。因此,應該使用configure()來創建數組。這在map()方法之外,所以它只發生一次。我希望那是對的! – occasionalUser 2012-04-25 15:36:23