全方位揭秘!大数据从0到1的完美落地之YARN的简介

YARN的简介

MapReduce 1.x

​ 第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成。对应Hadoop版本为Hadoop 1.x和0.21.X,0.22.x。

MapReduce 1.x的角色
  • Client: 作业提交发起者
  • JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作业。
  • TaskTracker: 保持JobTracker通信,在分配的数据片段上执行MapReduce任务。
  • 以上三个就是主要的角色
  • 执行流程:
    • 客户端提供任务需要执行必须经过JobTracker进行资源管理分配
    • JobTracker和TaskTracker是主从结构
    • MapReaduce需要回报运行状态,TaskTracker和JobTracker进行回报运行程序,Client将作业提交给JobTracker
    • client提交作业到JobTracker,JobTracker有两个功能一个是资源管理和任务分配,TaskTracker会回报资源情况,JobTracker中会存在一个切片清单,通过两个合并的得到那个TaskTracker最适合计算,而JobTracker会将作业分发给TaskTracker来完成,而TaskTracker内部会将具体的任务分发给Task,然后Task任务会将信息再次提交给JobTracker

image-20220203020205003

MapReduce 1.x执行流程

image-20220203020229785

  1. 提交作业

    编写MapReduce程序代码,创建job对象,并进行配置,比如输入和输出路径,压缩格式等,然后通过JobClinet来提交作业。

  2. 初始化作业

    客户端提交完成后,JobTracker会将作业加入队列,然后进行调度,默认的调度方法是FIFO调试方式。

  3. 分配任务

    TaskTracker和JobTracker之间的通信与任务的分配是通过心跳机制完成的。

    TaskTracker会主动向JobTracker询问是否有作业要做,如果自己可以做,那么就会申请到作业任务,这个任务可以是MapTask也可能是ReduceTask。

  4. 执行任务

    申请到任务后,TaskTracker会做如下事情:

    1. 拷贝代码到本地
    2. 拷贝任务的信息到本地
    3. 启动JVM运行任务
  5. 状态与任务的更新

    任务在运行过程中,首先会将自己的状态汇报给TaskTracker,然后由TaskTracker汇总告之JobTracker。任务进度是通过计数器来实现的。

  6. 作业的完成

    JobTracker是在接受到最后一个任务运行完成后,才会将任务标记为成功。此时会做删除中间结果等善后处理工作。

YARN的介绍

​ 为克服Hadoop 1.0中HDFS和MapReduce存在的各种问题而提出的,针对Hadoop 1.0中的MapReduce在扩展性和多框架支持方面的不足,提出了全新的资源管理框架YARN.

​ Apache YARN(Yet another Resource Negotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于一个分布式的操作系统平台,而MapReduce等计算程序则相当于运行于操作系统之上的应用程序。

​ YARN被引入Hadoop2,最初是为了改善MapReduce的实现,但是因为具有足够的通用性,同样可以支持其他的分布式计算模式,比如Spark,Flink等计算框架。

image-20220203020503377

注意:还有一层应用是运行在MapReduce,Spark或者Tez之上的处理框架,如Pig,Hive和Crunch等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值