定义框架接口
由具体实现类实现
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);
}

- 大小: 43.8 KB
分享到:
相关推荐
HDFS的设计目标是处理PB级别的数据,通过副本机制确保数据的可靠性。 2. MapReduce:Hadoop的并行计算模型,主要负责数据的处理。Map阶段将大任务拆分成小任务,Reduce阶段则将处理结果进行聚合,实现分布式计算。 ...
用户可以从中学习到如何处理大数据,理解Map和Reduce的运作机制,并掌握使用Hadoop提交和管理MapReduce作业的基本技能。这对于想深入理解大数据处理和Hadoop生态系统的人来说是非常有价值的资源。
GenericOptionsParser处理通用的Hadoop命令行选项,而Tool接口和ToolRunner则提供了更加便捷的应用程序运行机制。Configured类作为Configurable接口的实现,常用于打印和获取配置信息。 此外,课程还涉及了Hadoop的...
MapReduce框架中的对象如ToolRunner类、Configured类、Job类、Mapper类和Reducer类等,是编写MapReduce程序的基础。用户可以通过这些对象实现自定义的MapReduce程序逻辑。 为了保证MapReduce程序的正确性和稳定性,...
### hadoop MapReduce编程教程知识点概述 ...- WordCount实例不仅是一个入门级的示例,而且对于理解MapReduce的工作机制非常有帮助。通过深入学习和实践,可以掌握MapReduce的强大功能,从而更好地应对大数据处理挑战。
辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 mapper reducer 本地运行测试数据 在本地作业运行器上运行作业 测试驱动程序 在集群上运行 打包 启动作业 MapReduce的Web界面 ...
辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 mapper reducer 本地运行测试数据 在本地作业运行器上运行作业 测试驱动程序 在集群上运行 打包 启动作业 MapReduce的Web界面 获取结果 作业调试 使用...
- `run()`方法设置输入和输出路径,配置作业,并调用`ToolRunner.run()`来启动作业。 **三、Hadoop MapReduce流程** 1. **Map阶段**:Hadoop将日志文件分割成多个块,并在集群的不同节点上并行运行`Mapper`实例。...