Hadoop的 Yarn 是什么?

时间:2020-02-23 14:33:29  来源:igfitidea点击:

Hadoop生态系统正在经历连续的演变。
其处理框架也随着时间的全速而发展。
Hadoop 1.0通过了批量映射的MapReduce处理框架,用于开发Hadoop 2.0的专业和交互式处理模型。

Apache Hadoop于2005年推出,并采取了使用MapReduce引擎进行大数据的分布式处理的能力。
随着The Hadoop已经经历了一些修改,它使Hadoop成为了一种更好而高级的框架,它支持具有传统MapReduce模型的各种其他分布式处理模型。

诸如Facebook,Google和Yahoo之类的数据Moguls采用Apache Hadoop获得从Hadoop HDFS获取新的高度,并使用资源管理环境和MapReduce处理。
但在过去,Google和Hadoop用户的其他人发现了Hadoop 1.0架构的一些问题。
MapReface的批处理协议无法跟踪数据收集过程中洪水的所有信息。

Yarn 介绍(Hadoop 2.0)

Yarn 是另一个资源谈判者的首字母缩写,它是Hadoop中的资源管理层。
它于2013年在Hadoop 2.0架构中介绍,以克服MapReduce的局限性。
Yarn 支持其他各种分布式计算范例,这些计算范例由Hadoop部署。

Yahoo为Hadoop的代码重写为单独的资源管理从作业调度,我们得到 Yarn 的结果。
这完善了Hadoop,因为我们可以使用像Apache STARK这样的其他软件的独立组件,或者通过使用 Yarn 编码来创建自己的应用程序。
使用 Yarn 创建的应用程序可以运行不同的分发架构。

铺设 Yarn 路径的Mapreduce的限制(Hadoop 2.0)

Hadoop mapreduce用于做大数据处理,但在处理巨大数据集时,在架构中有一些缺点。

MapReduce的限制(Hadoop 1.0)

可用性

jobtracker用于完成作业调度并跟踪作业。
如果在任何情况下,JobTracker失败,那么作业将必须重新启动。
该架构有一个可用性的点。

可扩展性

JobTracker用于执行各种任务,如作业调度,任务调度,资源管理和监控。
由于所有这些任务,JobTracker无法完全专注于作业调度,不同的节点未充分利用哪些节点,从而系统可伸缩性受到限制。

多租户

MapReduce Engine专用群集的节点与单个系统一起使用。
如Hadoop中群集的大小增加,它不能用于使用不同的模型。

实时处理中的问题

MapReduce是通过处理驱动的批处理,分析是批量完成的,结果在几个小时后得到了结果。
如果我们在欺诈检测情况下需要实时分析怎么办,那么它就不会使用。

MapReduce(Hadoop 1.0)有几个其他问题需要考虑,例如运行ad-hoc查询,级联失败,资源低效利用率,消息传递中的问题,以及运行非MapReduce应用程序的问题。

Yarn 建筑

Yarn 框架由"资源管理器"主守护程序组成,"节点管理"从站守护程序和"应用程序主",每个应用程序。

资源经理

资源管理器称为 Yarn 中的机架感知主守护程序。
它负责囤积资源并将其分配给应用程序。
竞争应用程序在资源管理器驳斥时获取系统资源。

资源管理器的两个组件:

节点管理器

Yarn 资源管理器作业的调度程序是为正在运行的应用程序分配资源。
它是一个纯粹的调度程序,因此它不做追踪和监视应用程序。
它不做任何跟踪或者监控,因此由于硬件或者应用程序意味着重新启动失败任务,它无法对故障做任何事情。

应用管理器

应用程序管理器用于监视和重新启动应用程序主设备,例如节点故障。

节点管理器

节点管理器是 Yarn 中的从属守护程序。
节点管理器与容器连接到容器,以监督生命周期。
它还监控容器资源使用情况并定期与资源管理器通信。
节点管理器工作与任务跟踪器相同。
任务跟踪器用于具有固定数量的映射并减少用于调度的插槽,因为节点管理器是动态创建的,其中资源容器是随机大小的。
资源容器可用于地图,从另一个框架中缩小任务和任务。

应用管理器

应用程序主站为Hadoop中运行的每个应用程序创建专用实例。
该实例在群集中的一个节点上生存在自己的容器中。
每个应用程序实例向资源主站发送心跳消息,如果需要的另外资源请求。
资源管理器用于在整个容器资源租赁中分配其他资源,该租赁还可以作为节点管理器上的容器的保留。

应用程序的完整寿命由应用程序主服务器,作为资源管理器的其他容器请求,以节点管理器发布请求。

资源管理器重新启动

它用于管理在 Yarn 上运行的资源和调度应用程序,并作为中央权威工作。
资源管理器有两种重新启动:

不工作保留资源管理器重新启动

重新启动用于增强RM以在可插拔状态商店中持续应用程序/尝试状态。
资源管理器加载了重启中的State-Store上的相同信息,并重新启动先前运行的应用程序。
用户不需要通过用户重新提交。

在RM的停机时间内,节点管理器和客户端用于轮询RM直到RM出现。
当RM出现时,它将向节点管理器和应用程序主服务发送心跳消息。

保留工作资源管理器重新启动

这将侧重于通过将容器请求与Restart上的节点管理器组合从应用程序主机和容器状态组合来重建RM的运行状态。
重新启动Master时,先前运行的应用程序已停止,因此不会丢失处理数据。

当节点管理器发送容器状态时,它将被RM捕获,从而帮助它们恢复以前的运行状态。
当容器通过重新启动的RM重新同步的容器发送心跳消息时,节点管理器不会杀死它。
它将开始再次管理容器,并且当它再次注册时,将在RM上发送容器状态Master