MapReduce多重MR如何实现

简介: 一、每次输出文件存在很烦人 // 判断output文件夹是否存在,如果存在则删除 Path path = new Path(otherArgs[1]);// 取第1个表示输出目录参数(第0个参数是输入目录) FileSystem fileSystem = path.

一、每次输出文件存在很烦人

// 判断output文件夹是否存在,如果存在则删除  
        Path path = new Path(otherArgs[1]);// 取第1个表示输出目录参数(第0个参数是输入目录)  
        FileSystem fileSystem = path.getFileSystem(conf);// 根据path找到这个文件  
        if (fileSystem.exists(path)) {  
            fileSystem.delete(path, true);// true的意思是,就算output有东西,也一带删除  
        }  

二、多重MR

    /设置第一轮MapReduce的相应处理类与输入输出  
        Job job1 = new Job(conf);  
        .
        .
        .
  
        // 定义一个临时目录,先将任务的输出结果写到临时目录中, 下一个job以临时目录为输入目录。  
        FileInputFormat.addInputPath(job1, new Path(otherArgs[0]));  
        Path tempDir = new Path("temp_"  
                + Integer.toString(new Random().nextInt(Integer.MAX_VALUE)));  
        FileOutputFormat.setOutputPath(job1, tempDir);  
  
        if (job1.waitForCompletion(true)) {//如果第一轮MapReduce完成再做这里的代码  
            Job job2 = new Job(conf);  
            FileInputFormat.addInputPath(job2, tempDir);  
            //设置第二轮MapReduce的相应处理类与输入输出  
            .
            .
            FileOutputFormat.setOutputPath(job2, new Path(otherArgs[1]));  
            
            FileSystem.get(conf).deleteOnExit(tempDir);//搞完删除刚刚的临时创建的输入目录  
            System.exit(job2.waitForCompletion(true) ? 0 : 1);  
        }          

  

目录
相关文章
|
8月前
|
数据采集 分布式计算 搜索推荐
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(一)
|
8月前
|
数据采集 缓存 分布式计算
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(二)
Hadoop学习---7、OutputFormat数据输出、MapReduce内核源码解析、Join应用、数据清洗、MapReduce开发总结(二)
|
8月前
|
分布式计算 Hadoop 数据处理
Hadoop基础学习---6、MapReduce框架原理(二)
Hadoop基础学习---6、MapReduce框架原理(二)
|
8月前
|
存储 分布式计算 Hadoop
Hadoop基础学习---6、MapReduce框架原理(一)
Hadoop基础学习---6、MapReduce框架原理(一)
|
8月前
|
分布式计算 资源调度 Hadoop
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
Hadoop基础学习---5、MapReduce概述和WordCount实操(本地运行和集群运行)、Hadoop序列化
|
9月前
|
机器学习/深度学习 分布式计算 监控
Hadoop生态系统中的数据处理技术:MapReduce的原理与应用
Hadoop生态系统中的数据处理技术:MapReduce的原理与应用