美文网首页
hadoop为什么会有yarn

hadoop为什么会有yarn

作者: 彬荣 | 来源:发表于2018-08-01 15:41 被阅读927次

    Hadoop1.x中的jobTracker和TaskTracker

    hadoop2.x是由hadoop1.x的问题造成的,其中重要的问题是jobTracker的问题,例如单点故障,任务过重,其中除了JonTracker同时还有一个TaskTracker。其中下图展示了Hadoop1.x的任务调度

    hadoop1.x中的jobTracker和TaskTracker进行的任务调度

    jobTracker其承担的任务有接受任务、计算资源、分配资源、与datanode进行通信。在hadoop中每个应用程序被表示成一个作业,每个作业又被分成多个任务,jobTracker的作业控制模块负责作业的分解和状态监控。其中状态监控主要包括TaskTracker状态监控、作业状态监控和任务状态监控,主要为容错和任务调度提供决策依据。

    TaskTracker是JobTracker和Task之间的桥梁:一方面,从JobTracker接收并执行各种命令:运行任务、提交任务、杀死任务等;另一方面,将本地节点上各个任务的状态通过心跳周期性汇报给JobTracker。TaskTracker与JobTracker和Task之间采用了RPC协议进行通信。TaskTracker的功能:

    1.汇报心跳:Tracker周期性将所有节点上各种信息通过心跳机制汇报给JobTracker。这些信息包括两部分:

    *机器级别信息:节点健康情况、资源使用情况等。

    *任务级别信息:任务执行进度、任务运行状态等。

    2.执行命令:JobTracker会给TaskTracker下达各种命令,主要包括:启动任务(LaunchTaskAction)、提交任务(CommitTaskAction)、杀死任务(KillTaskAction)、杀死作业(KillJobAction)和重新初始化(TaskTrackerReinitAction)。

    Hadoop2.x中的yarn资源调度平台

    Yarn的基本思想是拆分资源管理的功能,作业调度/监控到单独的守护进程。下图展示了yarn进行资源调度的流程

    ResourceManager,NodeManager,ApplicationMaster,Container,同样下面亦是yarn结构图。

    ResourceManager是全局的,负责对于系统中的所有资源有最高的支配权。

    ApplicationMaster 每一个job有一个ApplicationMaster 。

    NodeManager,NodeManager是基本的计算框架。

    NodeManager 是客户端框架负责 containers, 监控他们的资源使用 (cpu, 内存, 磁盘, 网络) 和上报给 ResourceManager/Scheduler.

    ApplicationMaster首先它是一个框架库,它的功能官网说的不够系统,大意,由于NodeManager 执行和监控任务需要资源,所以通过ApplicationMaster与ResourceManager沟通,获取资源。换句话说,ApplicationMaster起着中间人的作用。

    转换为更专业的术语:AM负责向ResourceManager索要NodeManager执行任务所需要的资源容器,更具体来讲是ApplicationMaster负责从Scheduler申请资源,以及跟踪这些资源的使用情况以及任务进度的监控。

    ResourceManager有两个组件:调度器和应用程序管理器。 

    调度器(Scheduler)是可插拔的,比如有Fair Scheduler、Capacity Scheduler等,当然调度器也可以自定义。

    总结

    为了更好的理解,我们就需要跟hadoop1.x比较:

    为何要使用yarn。

    我们看到JobTracker的功能被分散到各个进程中包括ResourceManager和NodeManager:

    比如监控功能,分给了NodeManager,和Application Master。

    ResourceManager里面又分为了两个组件:调度器及应用程序管理器。

    也就是说Yarn重构后,JobTracker的功能,被分散到了各个进程中。同时由于这些进程可以被单独部署所以这样就大大减轻了单点故障,及压力。

    同时我们还看到Yarn使用了Container,而hadoop1.x中使用了slot。slot存在的缺点比如只能map或则reduce用。Container则不存在这个问题。这也是Yarn的进步。

    相关文章

      网友评论

          本文标题:hadoop为什么会有yarn

          本文链接:https://www.haomeiwen.com/subject/mkkrvftx.html