hadoop作业调度和mapreduce过程详解

本文详细介绍了Hadoop MapReduce的工作流程和作业调度过程。从客户端提交作业开始,解析作业配置,通过ResourceManager生成ApplicationMaster,接着AM初始化map和reduce任务,监控任务执行进度。在map阶段,数据经过map函数、排序、分区、溢写和合并;在reduce阶段,数据被fetch、归并、排序并执行reduce函数,最终输出到HDFS。整个过程中涉及配置加载、集群通信和分布式存储等多个环节。
摘要由CSDN通过智能技术生成

一直想写一个关于hadoopMR和作业调度,还有存储过程(hdfs)等的详细总结,因为这一段时间巩固并且学到了很多,所以借此来写一个好一点的详细一点的,以后忘了好再看着回忆一下;

 先从作业提交开始 ,首先来一个简略的,作为动作级别的;

首先你有了一个作业,比如MR,然后你作为客户端,向服务器提交作业,首先提交至ResourceManager,获取一个作业ID,如果没有,则生成,如果有的话,就抛出异常;

现在假设生成了ID,得到了ID,ResourceManager就开始保存提交的作业配置,函数等,并且通过调度器在某个节点通过NodeManager生成有一个ApplicationMaster,这玩意是占有一定资源,是一个子进程;然后AM(ApplicationMaster)来初始化多个map,reduce任务,

然后监控任务执行的程度,其中map reduce中经过shuffle,首先是map函数,然后将map的输出通过环形缓冲区,排序,分区,溢写成文件,多个溢写文件合并,reduce端fetch数据,归并,排序,执行reduce函数,结束,输出到hdfs;

详细版的:

首先你写了一个mapreduce的自定义函数;

首先你有两个类,一个实现Mapper接口的类,一个实现了Reducer接口的类,其中分别重写了map函数和reduce函数;当然这两个函数中不光有这两个函数,还有setup,cleanup等函数,setup,cleanup都是只执行一个(在一个map循环),一个reduce执行;

其实这两个函数的作用都是对数据进行处理的,MR基于key,value的,其中的value就是你所要处理的数据,而key一般是行的偏移量(看你的输入格式了,或者你要套用什么数据结构,也可以自定义);

然后这就是你主要使用的计算函数了,也是原始hadoop]中的最重要,最基础的计算部分,这就是你要提交的作业;

你要做什么作业,作为大数据处理,简化一下,无非就是获得输入流,处理,获得输出流,然后写到某个地方;这也是基础流程,而大数据,当然解决的是大量数据的处理,输入输出的问题,和一般量的数据处理,输入输出是不一样的,它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值