在本章中,我们将来重温一下和Hadoop的作业提交和执行流程。
看下图,我们来比较详细的学习一下该流程:
从上图中可以看出,分为4个阶段:
Job作业提交
1、 编写MapReduce job程序,通过命令行向Hadoop提交并开始执行作业:
引用
# hadoop fs -put xxx.jar /path //或者使用hadoop fs -copyFromLocal xxx.jar /path 向copy文件
# chown -R hadoop xxx.jar
# chgrp -R hadoop xxx.jar
# hadoop jar xxx.jar package.ClassName input_path output_path
客户端实际上是通过JobClient的submitJobInternal提交作业的。
2、本次运行,NameNode节点会首先检查用户权限和提交参数是否正确,通过后生成一个job,于是JobClient向JobTracker申请一个JobID用于标识这个job;
3、JobClient将Job所需要的资源提交到HDFS中一个以JobID命名的目录中,这些资源包括Jar包、配置文件、InputSplit元数据信息等;
4、JobClient通过调用submitJob()向JobTracker告知Job也准备好,提交这个Job;
Job初始化
5、JobTracker初始化Job,当JobTracker接收到客户端submitJob()方法,会将该作业提交到内部的作业调度队列,并做相关的初始化操作,如生成JobInProgress对象和Map或Reduce Task列表等;
6、JobTracker通过JobID从HDFS获取这个Job的Split等信息;
任务分配(Task Assignment)
7、TaskTrackers节点周期性的通过心跳Heartbeat向JobTracker节点汇报自己的相关信息,如“自己”还活着、可以接受新任务等,然后然后JobTracker或根据一定的作业调度算法给TaskTrackers节点分配一个Map Task和Reduce Task任务;
任务执行(Task Execution)
8、TaskTracker节点在获得JobTracker指派给的任务后,会到中获取当前任务相关的资源;
9、TaskTracker启动会给分配给自己的任务启动一个JVM;
10、最后在新启动的JVM中开始执行Mapper或Reducer Task任务。
- 大小: 43.2 KB
分享到:
相关推荐
- **性能优化**:通过调整参数设置、改进数据存储格式等方式提高MapReduce作业的执行效率。 - **多用户作业调度器**:支持多用户同时提交作业,并合理分配资源,确保系统的公平性和响应速度。 - **安全机制**:...
根据提供的文件信息,本文将深入解析《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》这本书中的关键知识点,主要包括Hadoop的核心组件——MapReduce的设计理念、架构组成及其具体的实现原理。 ### Hadoop...
5. **部署和运行**:将作业提交到Hadoop集群,处理大规模数据,并监控作业执行情况。 6. **结果分析**:根据输出结果,进行数据分析,得出结论或洞察。 通过完成Udacity Hadoop MapReduce课程的最终项目作业,学习...
【标题】Hadoop MapReduce 实现 WordCount ...通过理解和实践 Hadoop MapReduce 的 WordCount 示例,开发者可以快速掌握 MapReduce 的基本工作原理,为进一步学习和应用大数据处理技术打下坚实基础。
1. **理解MapReduce的工作原理**:深入学习MapReduce的工作机制,理解其分布式计算的优势。 2. **实际编程经验积累**:通过编写MapReduce程序,积累了实际编程经验,熟悉了Hadoop和MapReduce的API。 3. **分布式计算...
通过学习和实践Hadoop MapReduce的源码打包,开发者不仅可以深入理解MapReduce的工作原理,还能提升在大数据环境下的编程能力,为处理大规模数据集提供强大的工具。同时,这也为后续学习Hadoop的其他组件,如Hive、...
运行这个MapReduce作业时,我们需要配置Hadoop环境,指定输入文件(A和B)的位置以及输出文件(C)的路径。通过Hadoop的`Job`类和相关输入输出格式类,可以设置这些参数并提交作业到Hadoop集群执行。 总结起来,这...
在大数据处理领域,Hadoop MapReduce 是一个至关重要的组件,它为海量数据的...通过研究这些代码,你可以学习到如何处理Hadoop集群上的大规模数据,如何编写高效的Mapper和Reducer,以及如何设置和调优MapReduce作业。
然后,你可以像在分布式环境中一样提交MapReduce作业进行测试。 总的来说,搭建Hadoop平台涉及多个环节,包括软件的下载安装、环境变量的配置、SSH的设置以及Hadoop配置文件的修改。这个过程对于理解Hadoop的工作...
通过深入学习《Hadoop技术内幕:深入解析YARN架构设计与实现原理》,读者可以全面了解YARN如何工作,如何解决大数据处理中的挑战,以及如何根据业务需求优化YARN配置。这将对理解Hadoop生态系统的运作、进行大数据...
Hadoop提供了丰富的工具来支持MapReduce作业的管理和调试,包括`hadoop jar`命令用于提交作业,`hadoop fs`用于文件系统操作,以及`job`和`task`命令用于查看作业和任务的状态。 总结,MapReduce是Hadoop处理大数据...
通过这个实战项目,学习者不仅可以掌握Java操作Hadoop MapReduce的基本方法,还能深入了解大数据处理流程,以及如何从海量气象数据中提取有价值的信息。此外,对于提升数据处理能力和分布式计算的理解也大有裨益。...
3. `Driver`类:配置和启动MapReduce作业,指定输入和输出路径,以及Mapper和Reducer类。 学习Hadoop WordCount实例,你可以深入了解以下知识点: 1. Hadoop环境搭建:包括安装Hadoop,配置Hadoop集群(单机或伪...
在Hadoop生态系统中,MapReduce是一种分布式计算框架,它允许我们处理海量数据并行化,非常适合大规模数据集的处理...通过阅读和分析像`TestMR.java`这样的源代码,我们可以深入学习并熟练运用MapReduce解决实际问题。
在大数据处理领域,Hadoop MapReduce是一个至关重要的组件,它为海量数据的并行处理提供了分布式计算框架。本文将深入探讨如何使用...通过深入学习和实践,开发者可以利用Hadoop MapReduce解决大数据处理中的各种问题。
3. 运行MapReduce作业,通过`Job`对象设置作业参数并提交。 ### 六、Hadoop与JavaWeb整合 在实际项目中,我们可能需要将Hadoop与JavaWeb结合,例如通过RESTful API访问Hadoop服务。这需要: 1. 使用Servlet或...