2016-03-27 39 views

回答

2

看看分佈式緩存。您可以發送一個小文件到映射器或減速器。

(如果你使用Java)

在你的主/驅動程序,設置文件的工作:

job.addCacheFile(new URI("path/to/file/inHadoop/file.txt#var")); 

注:VAR是用於訪問您的文件映射變量名/ reducer即fn [1]在下面的代碼中。

在映射或減速,從上下文中獲取文件:

public void setup(Context context) throws IOException{ 
    Configuration conf = context.getConfiguration(); 
    URI[] cacheFiles = context.getCacheFiles(); 
    String[] fn = cacheFiles[0].toString().split("#"); 
    BufferedReader br = new BufferedReader(new FileReader(fn[1])); 
    String line = br.readLine(); 
    //do something with line 
} 

注:cacheFiles [0]指的是你從你的主/驅動器發送的文件

More information

相關問題