Hadoop学习笔记(MR的执行流程,Yarn的调度流程)

MR的执行流程

1.MR程序分为MapTask阶段和ReduceTask阶段,且:

        1个切片 = 1个Block块 = 1个MapTask任务 = 1个分好区, 排好序, 规好约的文件.

        1个分区 = 1个ReduceTask任务 = 1个结果文件.

2.先对文件切片, 每个切片的大小默认和Block块大小一致(即:128MB), 且每个切片的数据会交由1个MapTask任务来处理.

3.MapTask任务采用逐行的方式从切片中读取数据, 逐行处理, 且会将处理后的数据放到 环形缓冲区(默认大小:100MB, 溢写比:0.8).

4. 当环形缓冲区达到溢写比的时候, 会触发溢写线程(spill), 对该部分数据做分区, 排序, 规约的操作, 然后存储到磁盘上(小文件).

5.对上述的小文件进行合并(默认:10个一合并), 获取最终的文件, 即: 1个MapTask = 1个分好区, 排好序, 规好约的文件.

6.当MapTask任务执行结束后, ReduceTask会开启一个拷贝线程, 从各个MapTask的结果文件中, 拷贝属于自己的数据(根据分区编号识别).

7. ReduceTask对数据进行合并, 排序的操作, 获取最终结果数据.

8.ReduceTask将处理好的结果数据写到磁盘文件中, 1个ReduceTask = 1个结果文件, 至此, MR程序执行结束.

Yarn的调度流程

1.客户端提交计算任务(例如:MR任务,Spark任务,Flink任务等)给到ResourceManager.

2.ReduceManager校验任务合法后, 活找到一台nodemanager节点, 创建AppMaster进程.

        1个计算任务 = 1个AppMaster进程.

3. AppMaster进程回合ResourceManager建立心跳机制, 并通过心跳包的方式获取到要执行的计算任务的信息, 之后会计算执行该任务所需的资源.

4. AppMaster找ResourceManager申请执行该计算任务所需的资源.

5.ResourceManager接收到AppMaster的请求后, 会找一些nodemanager,  在其上创建一些Container资源容器, "占用"资源, 用于执行该计算任务.

6.AppMaster会连接到nodemanager, 从而找到这些Container资源容器.

7.AppMaster会让计算任务在Container资源容器中执行,并实时监听计算任务的状态,当MapTask任务执行结束后,AppMaster会通知ReduceTask开始执行,当ReduceTask执行结束后,整个计算任务就做完了.

8.AppMaster会将该计算任务的结果返回给ResourceManager,并通知ResourceManager可以释放该计算任务的Container资源了,并启动自毁,至此,整个流程结束。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop YARN(Yet Another Resource Negotiator)是Hadoop的集群资源管理系统,负责集群资源的分配和任务调度。以下是Hadoop YARN执行流程: 1. 提交作业:用户通过客户端向YARN提交作业,包括应用程序的代码和所需的资源配置。 2. 资源请求:YARN的ResourceManager接收到作业提交请求后,会为该作业分配一个唯一的Application ID,并将作业相关的信息记录在内部数据结构中。 3. 资源分配:ResourceManager根据集群中可用的资源情况,分配合适的Container给作业。Container是一个虚拟的计算资源单元,可以运行一个或多个任务。 4. 任务调度:一旦ResourceManager为作业分配了Container,它会将Container的相关信息发送给NodeManager,NodeManager负责管理和监控Container的运行。 5. 任务执行:一旦NodeManager接收到Container的信息,它会启动Container,并运行作业中的任务任务可以是Map任务或Reduce任务,由应用程序代码定义。 6. 任务监控:NodeManager会监控任务的运行状态,并将进度和日志信息发送给ResourceManager。 7. 容错和恢复:如果任务失败或节点故障,YARN会自动重新分配和启动失败的任务。此外,它还能够根据配置策略进行容错和恢复操作。 8. 完成作业:当作业中的所有任务都成功完成时,YARN会将作业的最终状态和结果返回给客户端。 总体而言,Hadoop YARN通过ResourceManager和NodeManager的协调与管理,实现了任务的分配、调度和执行,以及容错和恢复等功能,从而实现了高效的集群资源管理和作业执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值