ToolRunner机制

定义框架接口
由具体实现类实现

public interface Tool extends Configurable {
int run(String [] args) throws Exception;
}



ToolRunner
同一的入口调用
按配置解析参数,调用接口方法

public static int run(Configuration conf, Tool tool, String[] args)
throws Exception{
if(conf == null) {
conf = new Configuration();
}
GenericOptionsParser parser = new GenericOptionsParser(conf, args);
//set the configuration back, so that Tool can configure itself
tool.setConf(conf);

//get the args w/o generic hadoop args
String[] toolArgs = parser.getRemainingArgs();
return tool.run(toolArgs);
}


Mahout 中具体调用示例

public static void main(String[] args) throws Exception {
ToolRunner.run(new Configuration(), new MinHashDriver(), args);
}


覆盖方法,提取参数,调用核心方法

@Override
public int run(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
addInputOption();
addOutputOption();
//...........
runJob(input,
output,
minClusterSize,
minVectorSize,
hashType,
numHashFunctions,
keyGroups,
numReduceTasks,
debugOutput);
return 0;
}


核心方法,配置job,开始map reduce任务

private void runJob(Path input,
Path output,
int minClusterSize,
int minVectorSize,
String hashType,
int numHashFunctions,
int keyGroups,
int numReduceTasks,
boolean debugOutput) throws IOException, ClassNotFoundException, InterruptedException {
Configuration conf = getConf();

//配置参数设置........................
Job job = new Job(conf, "MinHash Clustering");
job.setJarByClass(MinHashDriver.class);

//Job参数设置.........................
job.waitForCompletion(true);
}


[img]http://dl.iteye.com/upload/attachment/0062/3801/ead12e2b-f3c4-3ee8-892e-17a30ea2dfaa.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值