如何为java hadoop设置-file选项?

问题描述:

如何将hadoop程序所需的文件复制到所有计算节点?我知道hadoop streaming的-file选项可以做到这一点。我如何为java + hadoop做到这一点?如何为java hadoop设置-file选项?

完全相同的方式。当你的映射器/减速器/组合任务运行

假设你使用ToolRunner /配置/工具模式,你-files选项后指定的文件将在本地目录:

public class Driver extends Configured implements Tool { 
    public static void main(String args[]) { 
     ToolRunner.run(new Driver(), args); 
    } 

    public int run(String args[]) { 
     Job job = new Job(getConf()); 
     // ... 
     job.waitForCompletion(true); 
    } 
} 

public class MyMapper extends Mapper<K1, V1, K2, V2> { 
    public void setup(Context context) { 
     File myFile = new File("file.csv"); 
     // do something with file 
    } 


    // ... 
} 

然后,您可以执行与:

#> hadoop jar myJar.jar Driver -files file.csv ...... 

GenericOptionsParser的Javadoc更多信息