2012-09-23 193 views

回答

1

是的,如果文件相當小,您可以將這些文件設置在分佈式緩存中。 請點擊此鏈接http://developer.yahoo.com/hadoop/tutorial/module5.html#auxdata。這可能對你有用。

如果你認爲這部分代碼是由你決定哪個文件在哪個reducer中工作的。

Path [] cacheFiles = DistributedCache.getLocalCacheFiles(conf); 
     if (null != cacheFiles && cacheFiles.length > 0) { 
     for (Path cachePath : cacheFiles) { 
      if (cachePath.getName().equals(stopwordCacheName)) { 
      loadStopWords(cachePath); 
      break; 
      } 
     } 

看看是否有幫助

+0

謝謝,它有幫助,將實施它,並得到回報! –

+0

嗨,我想添加與減速器的關鍵字具有相同名稱的文件。但是上面的代碼,我在reduce方法的reduce方法的configure方法中實現了它。我不知道如何讀取與reducer的關鍵字同名的文件。請幫忙! –

+0

您試圖放入分佈式緩存的文件有多少? 如果大小很小,請使用Key和value作爲文件記錄將其加載到Hashmap中,具體取決於文件的類型。 – javanx

0

的問題(這是一個根本性的問題瓦特/ Hadoop的)是任務追蹤推出新的JVM進程的每一個任務 - 否定的內存緩存的任何好處。您可以將任務跟蹤器配置爲在同一個虛擬機中運行 - 但許多Hadoop內部使用System.exit()以及許多Hadoop作業......使得此類配置毫無意義。

您可以與Hadoop集羣共同部署GridGain集羣,並通過同一物理主機上兩個JVM(GridGain和Hadoop的任務跟蹤器JVM)之間的快速回送連接,使用GridGain進行內存中緩存 - 完成的操作由我們的幾個客戶。

+0

謝謝,請看看!我希望能夠將不同的文件添加到不同的縮減器中,並且在特定的縮減任務結束後,不必將它們保留在同一個節點中。網格獲得幫助我實現這個目標嗎? –

+0

如何整合GridGain與hadoop,你能給一些指導嗎? –