依赖关系组合式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中文说明文档是针对Apache Hadoop框架的开发者指南,它详细解释了如何使用...通过深入阅读和理解Hadoop API中文说明文档,开发者可以更好地利用Hadoop平台解决大数据问题,实现高效、可靠的分布式计算。
Hadoop2.6版本稳定版API文档CHM文件
这个版本的API文档详细地介绍了如何利用Java语言来与Hadoop生态系统进行交互,为开发人员提供了丰富的功能和工具,以实现大规模数据处理和存储。 Hadoop是一个由Apache基金会维护的开源项目,它的核心设计目标是...
在解压缩后的'hadoop2.7API'文件中,开发者可以找到详细的类和方法文档,了解每个API的功能、用法以及参数说明。通过阅读这些文档,开发者能够更好地理解如何利用Hadoop 2.x API来编写分布式应用程序,提高数据处理...
hadoop中文版API.chm文件,查找hadoop的类中方法、方法的用法等,方便、好用
赠送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; 包含翻译后...
同样地,我们也可以使用Hadoop新API实现同样的功能: ```java package bookCount; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org....
自己下载完整的API文档后编译的,Hadoop 2.6.0 API CHM版
在学习Hadoop API的过程中,不仅需要理解这些基本概念,还需要通过实践来熟悉API的使用。例如,通过编写MapReduce程序,了解如何配置和提交作业,以及如何处理各种输入输出数据格式。Hadoop中文版API.chm文档将提供...
2. **Job初始化**:在新API中,使用`Configuration`和`Job`类来初始化Job对象。 3. **Mapper和Reducer**:使用`Mapper`和`Reducer`接口,不再依赖于`MapReduceBase`。 #### 四、示例分析 在给定的部分内容中,提供...
Hadoop 2.7.4 API 帮助文档 ,这份帮助文档很全,包括了源码等等,你值得拥有。
在Hadoop 2.6 API中,我们可以找到以下主要组件和接口: 1. **HDFS API**:包括`org.apache.hadoop.hdfs`包,提供了对HDFS的读写操作。例如,`DFSClient`类是与HDFS通信的主要客户端,`DFSInputStream`和`...
Hadoop 2.10.0中文版API是大数据处理领域的一个重要参考资料,它为开发者提供了详尽的接口文档,帮助他们理解和使用Hadoop生态系统中的各种组件。Hadoop是一个开源框架,主要用于分布式存储和分布式计算,是大数据...
此外,Hadoop API还支持其他的高级特性,如Job的进度和状态查询、数据本地性优化、故障恢复等。通过深入学习这个API文档,开发者可以了解如何有效地利用Hadoop处理大数据问题,同时也能为后续版本的学习打下坚实的...
在Hadoop生态系统中,API扮演着至关重要的角色,它们提供了与Hadoop分布式文件系统(HDFS)以及其他核心组件交互的接口。以下是对给定文件中提到的Hadoop API的详细说明: 1. **org.apache.hadoop.conf**: 这个包...
Hadoop API帮助文档,学习Nutch和Hadoop必备
hadoop的api手册,包含hadoop开放的编程接口及参数说明
hadoop-api.rar...介绍使用编码/解码器的典型实例(代码在org.hadoopinternal.compress包中)。其中,compress()方法接受一个字符串参数,用于指定编码/解码器,并用对应的压缩算法对...
Hadoop API中与HDFS相关的类有`FileSystem`、`DFSClient`和`FSDataInputStream/FSDataOutputStream`等,用于文件的读写操作。 3. **MapReduce**:MapReduce是Hadoop的计算模型,它将复杂的大数据处理任务分解为两个...
《Hadoop API 手册》是一本专门为Hadoop学习者和开发者准备的重要参考资料,它深入地介绍了Hadoop的API用法,是理解并利用Hadoop进行大数据处理的关键工具。手册以CHM(Microsoft Compiled HTML Help)格式呈现,...