Maj*_*imi 9 hadoop mapreduce toolrunner
大多数Hadoop MapReduce程序都是这样的:
public class MyApp extends Configured Implements Tool {
@Override
public int run(String[] args) throws Exception {
Job job = new Job(getConf());
/* process command line options */
return job.waitForCompletion(true) ? 0 : 1;
}
public static void main(String[] args) throws Exception {
int exitCode = ToolRunner.run(new MyApp(), args);
System.exit(exitCode);
}
}
Run Code Online (Sandbox Code Playgroud)
有什么用Configured?由于Tool和Configured都有getConf()和setConf()共同点.它为我们的应用程序提供了什么?
sha*_*zin 10
Configured是接口的实现类Configurable.Configured是其具有的实现的基类getConf()和setConf().
仅仅扩展这个基类使得扩展它的类能够使用a进行配置,Configuration并且有多个实现Configuration.
当您的代码执行以下行时,
ToolRunner.run(new MyApp(), args);
Run Code Online (Sandbox Code Playgroud)
在内部它会做到这一点
ToolRunner.run(tool.getConf(), tool, args);
Run Code Online (Sandbox Code Playgroud)
在上面的例子中tool是MyApp类实例,Tool它就像你说的那样实现,getConf()但它只是一个接口.实现来自Configured基类.如果你避免Configured在上面的代码中扩展类,那么你将不得不自己完成getConf()和setConf()实现.
| 归档时间: |
|
| 查看次数: |
7627 次 |
| 最近记录: |