`

多个MapReduce作业相互依赖时,使用JobControl进行管理

阅读更多

          要处理复杂关系的数据,一个工程里面绝对不止一个MapReduce作业,当有多个MapReduce作业时,       并且每个作业之间有依赖关系,所谓的依赖就是一个作业得到的结果是另外一个作业的输入,这个时候我们可     以使用JobControl吊用其中的的addDepending()方法,管理每个MapReduce工作间的依赖关系,具体的     示例如下:

   

    step1:

//设置各个Configuration
Configuration Aconf = new Configuration();
Configuration Bconf = new Configuration();
Configuration Cconf = new Configuration();
Configuration Dconf = new Configuration();

 

    step2:

//创建job对象,需要注意的是JobControl要求作业必须封装成job对象
Job Ajob = new Job(Aconf);
Job Bjob = new Job(Bconf);
Job Cjob = new Job(Cconf);
Job Djob = new Job(Dconf);

 

    step3:

//设置依赖关系,构造一个DAG作业
Bjob.addDepending(Ajob);
Cjob.addDepending(Ajob);
Djob.addDepending(Bjob);
Djob.addDepending(Cjob);

 

    step4:

//创建JobControl对象,由他对作业进行监控和调度
JobControl JC = new JobControl("Native Bayes");

 

    step5:

//把四个作业添加到JobControl中
JC.addJob(Ajob);
JC.addJob(Bjob);
JC.addJob(Cjob);
JC.addJob(Djob);

 

    step6:

//提交DAG作业
JC.run();

 

 

     在实际运行过程中,不依赖于其他任何作业的Ajob优先得到调度,一旦运行完成,Bjob,Cjob两个作业同        时被调度,待他们全部运行完成后Djob被调用,参看上面的依赖的顺序!!!

   

2
0
分享到:
评论

相关推荐

    用于多个MapReduce作业的任务调度算法.pdf

    本文提出了一个用于多个MapReduce作业的任务调度算法,解决了多个MapReduce作业之间的调度问题,并且考虑了数据依赖限制和带宽有限的数据传输成本。 二、算法设计 本文的调度算法基于优先级约束,考虑了工作流应用...

    hadoop mapreduce多表关联join多个job相互依赖传递参数

    MapReduce提供了一种分布式计算模型,能够高效地处理大规模数据集,但面对多表关联,尤其是多个Job之间的依赖和参数传递,开发者需要掌握特定的策略和技术。以下将详细阐述这些知识点。 首先,理解MapReduce的基本...

    20、MapReduce 工作流介绍

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

    第一个Mapreduce程序.pdf

    本文主要介绍了如何使用Java编写MapReduce程序,并运行第一个MapReduce作业,包括遇到的问题和解决方案。 首先,环境搭建是使用Hadoop MapReduce的重要步骤。本文的环境基于CDH5(Cloudera's Distribution ...

    MapReduce暑假大作业——基于紫荆的种子推荐.zip

    在这个“MapReduce暑假大作业——基于紫荆的种子推荐”项目中,我们将会深入理解并实践如何利用MapReduce来解决实际问题,特别是针对大数据环境下的推荐系统。这个项目涉及到的核心知识点包括MapReduce的工作原理、...

    java大数据作业_5Mapreduce、数据挖掘

    【Java大数据作业_5Mapreduce、数据挖掘】的课后作业涵盖了多个MapReduce和大数据处理的关键知识点,包括日志分析、Job执行模式、HBase的相关类、容量调度配置、MapReduce流程以及二次排序算法。下面将对这些内容...

    Python-mrjob在Hadoop或AmazonWebServices上运行MapReduce作业

    2. **定义MapReduce作业**:在Python脚本中,你可以使用`@MrJob`装饰器定义一个类,这个类会包含`run()`方法,Map和Reduce函数(如`mapper()`和`reducer()`)。这些函数接收键值对作为输入,生成新的键值对作为输出...

    MapReduce2.0程序设计多语言编程(理论+实践)

    例如,`org.apache.hadoop.mapreduce`包下的各种类和接口,如Job、TaskAttemptID等,用于配置和管理MapReduce作业。 4. **多语言编程**:除了Java,MapReduce还支持其他编程语言,如使用Python的`hadoop streaming`...

    基于MapReduce作业拆分组合机制的并行ETL组件实现.pdf

    2. **工作流引擎设计**:针对提出的框架,设计了一个高效的工作流引擎,该引擎能够动态地管理和优化ETL流程,确保每个作业的拆分和组合符合最佳性能标准。 3. **流程级别的优化规则**:根据MapReduce作业的特性及...

    基于Hadoop的MapReduce作业集合.zip

    本项目是一个基于Hadoop的MapReduce作业集合,涵盖了多种数据处理和分析任务。通过这些作业,用户可以学习如何在Hadoop平台上进行大规模数据处理,包括数据统计、排序、推荐系统、文件操作等。 项目的主要特性和...

    多MapReduce作业协同下的大数据挖掘类算法资源效率优化.pdf

    这是因为每个MapReduce作业都需要进行独立的任务调度和资源分配,造成在多个作业间产生大量的重复磁盘I/O操作和资源申请。这种冗余操作降低了资源的利用效率,增加了计算过程中的等待时间,影响了算法的整体性能。 ...

    MapReduce读取单词个数.rar

    这个命令需要指定jar包的路径,主类(即包含`main`方法的类,负责启动MapReduce作业)以及可能的输入和输出路径。由于描述中提到“无需上传参数”,这意味着MapReduce程序可能已经在代码中预设了输入数据的位置或者...

    实验项目 MapReduce 编程

    实验的总结与思考部分,强调了实验的目标在于理解和掌握MapReduce编程思想,了解MapReduce作业的执行流程,以及如何使用MapReduce Java API进行编程。此外,还包括在Hadoop集群上运行程序,利用Web界面和Shell命令...

    MapReduce的实现细节

    - **作业** (`Job`):用户的每一个计算请求被视为一个作业。 - **作业服务器** (`JobTracker` 或 `Master`):用户提交作业的地方,同时也是作业任务的分配和管理核心。 - **任务服务器** (`TaskTracker` 或 `Worker`...

    Hadoop mapreduce实现wordcount

    在 Map 阶段,输入数据被分割成多个块(Block),每个块会分配到集群中的一个节点上进行处理。Mapper 类负责处理这些数据块,它接收键值对(key-value pair)作为输入,通常键是文件块的偏移量,值是该块的文本内容...

    使用MyEclipse实现MapReduce

    1. 输入Split:Hadoop根据数据大小将其划分为多个块(Input Split)。 2. Map阶段:每个Input Split由一个Map任务处理,Map任务读取数据,解析成键值对,并调用用户定义的Map函数进行处理,生成新的中间键值对。 3. ...

    Hadoop MapReduce

    2. Job Configuration:定义了作业运行时的详细参数,包括输入输出路径、作业名称、运行环境等。 3. Task Execution & Environment:负责执行具体的map和reduce任务,以及为任务提供执行环境。 4. Job Submission ...

    mapreduce项目 数据清洗

    在这个"MapReduce项目 数据清洗"中,我们将探讨如何使用MapReduce对遗传关系族谱数据进行处理和清洗,以便进行后续分析。 1. **Map阶段**: 在Map阶段,原始数据被分割成多个小块(split),然后分配到不同的工作...

    Hadoop MapReduce作业卡死问题的解决方法.docx

    在使用Hadoop MapReduce进行大规模数据处理的过程中,遇到了一个棘手的问题——部分MapReduce作业长时间卡死,严重影响了系统的运行效率和资源利用率。这类问题的出现不仅导致了Hadoop集群资源的长期占用,还使得...

Global site tag (gtag.js) - Google Analytics