`
linest
  • 浏览: 157127 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

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);
  }



  • 大小: 43.8 KB
分享到:
评论

相关推荐

    hadoop组件程序包.zip

    HDFS的设计目标是处理PB级别的数据,通过副本机制确保数据的可靠性。 2. MapReduce:Hadoop的并行计算模型,主要负责数据的处理。Map阶段将大任务拆分成小任务,Reduce阶段则将处理结果进行聚合,实现分布式计算。 ...

    MR应用程序模板

    用户可以从中学习到如何处理大数据,理解Map和Reduce的运作机制,并掌握使用Hadoop提交和管理MapReduce作业的基本技能。这对于想深入理解大数据处理和Hadoop生态系统的人来说是非常有价值的资源。

    精品课程推荐 大数据与云计算教程课件 优质大数据课程 13.深入MapReduce应用开发(共21页).pptx

    GenericOptionsParser处理通用的Hadoop命令行选项,而Tool接口和ToolRunner则提供了更加便捷的应用程序运行机制。Configured类作为Configurable接口的实现,常用于打印和获取配置信息。 此外,课程还涉及了Hadoop的...

    MapReduceV2笔记

    MapReduce框架中的对象如ToolRunner类、Configured类、Job类、Mapper类和Reducer类等,是编写MapReduce程序的基础。用户可以通过这些对象实现自定义的MapReduce程序逻辑。 为了保证MapReduce程序的正确性和稳定性,...

    hadoop MapReduce编程教程

    ### hadoop MapReduce编程教程知识点概述 ...- WordCount实例不仅是一个入门级的示例,而且对于理解MapReduce的工作机制非常有帮助。通过深入学习和实践,可以掌握MapReduce的强大功能,从而更好地应对大数据处理挑战。

    Hadoop权威指南 第二版(中文版)

     辅助类GenericOptionsParser,Tool和ToolRunner  编写单元测试  mapper  reducer  本地运行测试数据  在本地作业运行器上运行作业  测试驱动程序  在集群上运行  打包  启动作业  MapReduce的Web界面  ...

    Hadoop权威指南(中文版)2015上传.rar

    辅助类GenericOptionsParser,Tool和ToolRunner 编写单元测试 mapper reducer 本地运行测试数据 在本地作业运行器上运行作业 测试驱动程序 在集群上运行 打包 启动作业 MapReduce的Web界面 获取结果 作业调试 使用...

    Java代码统计网站中不同省份用户的访问数

    - `run()`方法设置输入和输出路径,配置作业,并调用`ToolRunner.run()`来启动作业。 **三、Hadoop MapReduce流程** 1. **Map阶段**:Hadoop将日志文件分割成多个块,并在集群的不同节点上并行运行`Mapper`实例。...

Global site tag (gtag.js) - Google Analytics