如何为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更多信息