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

使用JobControl管理mapreduce多job依赖

阅读更多

当我们在处理mr问题的时候,有时候需求过于复杂,通过一个简单的mr无法达到目的,我们该怎么办呢?

答案是采取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()方法,线程将无法结束

 

分享到:
评论

相关推荐

    20、MapReduce 工作流介绍

    总结来说,MapReduce工作流是Hadoop中处理多阶段数据处理任务的重要工具,通过`JobControl` 和`ControlledJob` ,可以管理和协调一系列相互依赖的MapReduce作业,确保它们按照正确的顺序和条件执行。这对于实现复杂...

    Hadoop_MapReduce教程

    - **JobControl**:JobControl 提供了一组用于管理多个作业的工具。 - **数据压缩**:为了节省存储空间和网络带宽,Hadoop 支持多种压缩算法,可以在作业的不同阶段启用压缩功能。 #### 例子:WordCount v1.0 - **...

    MapReduce-Code:Hadoop平台下的MapReduce源码分析

    1.org.apache.hadoop.mapred(旧版MapReduceAPI):( 1).jobcontrol(job作业直接控制类)(2 ).join :(作业作业中用于模仿数据连接处理工具)(3).lib(MapReduce所依赖的工具方法)| ----(1).aggregate...

    oozie介绍及使用详解

    - **Action Node**:执行实际任务,如MapReduce Job Node、Pig Action Node、Hive Action Node等。 - **Control Node**:控制流程的走向,如Start Node、End Node、Decision Node、Fork Node和Join Node。 理解...

    尚硅谷大数据技术之Oozie1

    1. **控制流节点(Control Flow Nodes)**:这些节点主要在工作流的开始和结束处使用,如`start`、`end`和`kill`节点。`decision`节点根据条件控制流程走向,`fork`和`join`节点则用于任务的分支和合并。 2. **动作...

    hadoop-3.1.3-src.tar.gz

    - **编译与构建**:使用Maven进行项目管理和构建,开发者可以通过修改pom.xml文件配置依赖和构建参数。 - **核心类库**:如`org.apache.hadoop.fs.FileSystem`、`org.apache.hadoop.mapreduce.Job`等,提供了与...

    spring-hadoop-getting-started:Spring for Apache Hadoop 入门示例

    2. Bean定义:Spring Hadoop将Hadoop的类,如FileSystem、Configuration、Job等,作为Spring的Bean进行管理,使得开发者可以方便地注入和使用。 3. MapReduce支持:Spring Hadoop提供了MapReduce作业的抽象,包括...

Global site tag (gtag.js) - Google Analytics