`
wangzjie
  • 浏览: 75533 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop 新版api中的JobControl实现

阅读更多

依赖关系组合式MapReduce

 

答案是采取JobControl,直接上代码。

JobControl依赖关系组合式MpaReduce。

旧版实现:org.apache.hadoop.mapred包下

Configuration job1conf = new Configuration();
Job job1 = new Job(job1conf,"Job1");
.........//job1 其他设置
Configuration job2conf = new Configuration();
Job job2 = new Job(job2conf,"Job2");
.........//job2 其他设置
Configuration job3conf = new Configuration();
Job job3 = new Job(job3conf,"Job3");
.........//job3 其他设置
job3.addDepending(job1);//设置job3和job1的依赖关系
job3.addDepending(job2);
JobControl JC = new JobControl("123");
JC.addJob(job1);//把三个job加入到jobcontorl中
JC.addJob(job2);
JC.addJob(job3);
JC.run();

 新版api实现:org.apache.hadoop.mapreduce.lib.jobcontrol.*(在hadoop 0.20.2还没有,hadoop 1.x已经有了)

使用该包下的ControlledJob与JobControl

/** 
     * job2 依赖于 job1 
     * @param job1 
     * @param job2 
     * @param chainName 
     * @return 
     * @throws IOException 
     */  
    public static int handleJobChain(Job job1 ,Job job2, String chainName) throws IOException{  
        ControlledJob controlledJob1 = new ControlledJob(job1.getConfiguration());
        controlledJob1.setJob(job1);         
        ControlledJob controlledJob2 = new ControlledJob(job2.getConfiguration()) 
        controlledJob2.setJob(job2);  
        controlledJob2.addDependingJob(controlledJob1);          
        JobControl jc = new JobControl(chainName);  
        jc.addJob(controlledJob1);  
        jc.addJob(controlledJob2);  
        Thread jcThread = new Thread(jc);  
        jcThread.start();  
        while(true){  
            if(jc.allFinished()){  
                System.out.println(jc.getSuccessfulJobList());  
                jc.stop();  
                return 0;  
            }  
            if(jc.getFailedJobList().size() > 0){  
                System.out.println(jc.getFailedJobList());  
                jc.stop();  
                return 1;  
            }  
        }  
    } 

 

要注意的地方就是hadoop的JobControl类实现了线程Runnable接口。我们需要实例化一个线程来让它启动。直接调用JobControl的run()方法,线程将无法结束。要调用JobControl.stop()才能停止

分享到:
评论

相关推荐

    hadoop-api中文说明文档

    Hadoop API中文说明文档是针对Apache Hadoop框架的开发者指南,它详细解释了如何使用...通过深入阅读和理解Hadoop API中文说明文档,开发者可以更好地利用Hadoop平台解决大数据问题,实现高效、可靠的分布式计算。

    Hadoop2.6_API.chm

    Hadoop2.6版本稳定版API文档CHM文件

    Hadoop 0.20.2 API文档

    这个版本的API文档详细地介绍了如何利用Java语言来与Hadoop生态系统进行交互,为开发人员提供了丰富的功能和工具,以实现大规模数据处理和存储。 Hadoop是一个由Apache基金会维护的开源项目,它的核心设计目标是...

    hadoop2API帮助文档

    在解压缩后的'hadoop2.7API'文件中,开发者可以找到详细的类和方法文档,了解每个API的功能、用法以及参数说明。通过阅读这些文档,开发者能够更好地理解如何利用Hadoop 2.x API来编写分布式应用程序,提高数据处理...

    hadoop中文版API

    hadoop中文版API.chm文件,查找hadoop的类中方法、方法的用法等,方便、好用

    hadoop-yarn-api-2.5.1-API文档-中文版.zip

    赠送jar包:hadoop-yarn-api-2.5.1.jar; 赠送原API文档:hadoop-yarn-api-2.5.1-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.5.1-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-api-2.5.1.pom; 包含翻译后...

    教你如何查看API及使用hadoop新api编程

    同样地,我们也可以使用Hadoop新API实现同样的功能: ```java package bookCount; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org....

    Hadoop 2.6.0 API CHM版 自制

    自己下载完整的API文档后编译的,Hadoop 2.6.0 API CHM版

    hadoop-API.zip_Hadoop学习_hadoop api

    在学习Hadoop API的过程中,不仅需要理解这些基本概念,还需要通过实践来熟悉API的使用。例如,通过编写MapReduce程序,了解如何配置和提交作业,以及如何处理各种输入输出数据格式。Hadoop中文版API.chm文档将提供...

    教你如何查看API及使用hadoop新api编程 高清完整版PDF下载

    2. **Job初始化**:在新API中,使用`Configuration`和`Job`类来初始化Job对象。 3. **Mapper和Reducer**:使用`Mapper`和`Reducer`接口,不再依赖于`MapReduceBase`。 #### 四、示例分析 在给定的部分内容中,提供...

    Hadoop2.7.4 API帮助文档

    Hadoop 2.7.4 API 帮助文档 ,这份帮助文档很全,包括了源码等等,你值得拥有。

    hadoop2.6-api.zip

    在Hadoop 2.6 API中,我们可以找到以下主要组件和接口: 1. **HDFS API**:包括`org.apache.hadoop.hdfs`包,提供了对HDFS的读写操作。例如,`DFSClient`类是与HDFS通信的主要客户端,`DFSInputStream`和`...

    Hadoop 2.10.0中文版API

    Hadoop 2.10.0中文版API是大数据处理领域的一个重要参考资料,它为开发者提供了详尽的接口文档,帮助他们理解和使用Hadoop生态系统中的各种组件。Hadoop是一个开源框架,主要用于分布式存储和分布式计算,是大数据...

    hadoop的api文档

    此外,Hadoop API还支持其他的高级特性,如Job的进度和状态查询、数据本地性优化、故障恢复等。通过深入学习这个API文档,开发者可以了解如何有效地利用Hadoop处理大数据问题,同时也能为后续版本的学习打下坚实的...

    hadoop api.doc

    在Hadoop生态系统中,API扮演着至关重要的角色,它们提供了与Hadoop分布式文件系统(HDFS)以及其他核心组件交互的接口。以下是对给定文件中提到的Hadoop API的详细说明: 1. **org.apache.hadoop.conf**: 这个包...

    Hadoop API帮助文档

    Hadoop API帮助文档,学习Nutch和Hadoop必备

    hadoop的api

    hadoop的api手册,包含hadoop开放的编程接口及参数说明

    hadoop-api.rar

    hadoop-api.rar...介绍使用编码/解码器的典型实例(代码在org.hadoopinternal.compress包中)。其中,compress()方法接受一个字符串参数,用于指定编码/解码器,并用对应的压缩算法对...

    hadoop api 操作代码

    Hadoop API中与HDFS相关的类有`FileSystem`、`DFSClient`和`FSDataInputStream/FSDataOutputStream`等,用于文件的读写操作。 3. **MapReduce**:MapReduce是Hadoop的计算模型,它将复杂的大数据处理任务分解为两个...

    Hadoop API 手册

    《Hadoop API 手册》是一本专门为Hadoop学习者和开发者准备的重要参考资料,它深入地介绍了Hadoop的API用法,是理解并利用Hadoop进行大数据处理的关键工具。手册以CHM(Microsoft Compiled HTML Help)格式呈现,...

Global site tag (gtag.js) - Google Analytics