定义框架接口
由具体实现类实现
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的...
5. **ToolRunner和Eclipse提交任务**:`ToolRunner`是Hadoop提供的一个工具,允许我们通过命令行参数轻松地启动MapReduce作业。在Eclipse这样的开发环境中,我们可以编写一个主类,该类继承自`Tool`接口,然后通过`...
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) at org.apache.sqoop.Sqoop.runTool...
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) at org.apache.sqoop.Sqoop.runTool...
"ToolRunner"是Hadoop自带的一个工具,它允许用户通过命令行执行自定义的MapReduce程序。"MagicRunner"则是我们讨论的主题,它是一个与Eclipse集成的工具,使得在本地运行Hadoop任务变得简单。 【压缩包子文件的...
MapReduce框架中的对象如ToolRunner类、Configured类、Job类、Mapper类和Reducer类等,是编写MapReduce程序的基础。用户可以通过这些对象实现自定义的MapReduce程序逻辑。 为了保证MapReduce程序的正确性和稳定性,...
### hadoop MapReduce编程教程知识点概述 ...- WordCount实例不仅是一个入门级的示例,而且对于理解MapReduce的工作机制非常有帮助。通过深入学习和实践,可以掌握MapReduce的强大功能,从而更好地应对大数据处理挑战。
具体来说,它通过`ToolRunner.run()`方法依次启动了6个不同的MapReduce任务,每个任务对应一个具体的实现类(例如`UserCF1`、`UserCF2`等)。 ```java public static void main(String[] args) throws Exception { ...
辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 mapper reducer 本地运行测试数据 在本地作业运行器上运行作业 测试驱动程序 在集群上运行 打包 启动作业 MapReduce的Web界面 ...
(1)统计全球每年的最高气温和最低气温。 (2)MapReduce输出结果包含年份、最高气温、最低气温,并按最高气温降序排序。如果最高气温相同,则按最低气温升序排序...(5)应用ToolRunner的使用和Eclipse提交MapReduce任务。
辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 mapper reducer 本地运行测试数据 在本地作业运行器上运行作业 测试驱动程序 在集群上运行 打包 启动作业 MapReduce的Web界面 获取结果 作业调试 使用...
的ToolRunner更好用的配置 DSL。 正在寻找 Rubydoop,Brenden Grace 的“用于 Hadoop 流的简单 Ruby Sugar”? 它仍然可以在以下位置找到,如果您从 Rubygems 安装 v0.0.5,您将获得那个 gem。 Rubydoop 假设您有...
- `run()`方法设置输入和输出路径,配置作业,并调用`ToolRunner.run()`来启动作业。 **三、Hadoop MapReduce流程** 1. **Map阶段**:Hadoop将日志文件分割成多个块,并在集群的不同节点上并行运行`Mapper`实例。...
System.exit(ToolRunner.run(job, args)); } } ``` 本实验报告介绍了使用 Hadoop 编程实现 wordcount 单词统计程序的步骤和代码实现。实验的目的在于熟悉 Hadoop 虚拟机的安装与环境的配置,初步理解 MapReduce ...
Hadoop中的多文件输出 Hadoop 的 MapReduce 框架中... System.exit(ToolRunner.run(new WordCount(), args)); } } ``` 通过这种方式,我们可以在 MapReduce 任务中输出多份文件,每个文件的名称可以根据需要自定义。
import org.apache.hadoop.util.ToolRunner; public class WordCount extends Configured implements Tool { // ... mapper and reducer code here ... } ``` 最后,你需要将数据文件放入HDFS的`in`目录,并运行...