大数据之MapReduce和Yarn
MapReduce的定义
MapReduce是面向大数据并行处理的计算模型、框架和平台。
它包含以下三层含义:
MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。
MapReduce是一个并行计算与运行软件框架(Software Framework)。
MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。
MapReduce的特性
MapReduce基于Google发布的分布式计算框架MapReduce论文设计开发,用于大规模数据集(大于1TB)的并行计算,具有如下特点:
易于编程:程序员仅需描述做什么,具体怎么做交由系统的执行框架处理。
良好的扩展性:可通过添加节点以扩展集群能力。
高容错性:通过计算迁移或数据迁移等策略提高集群的可用性与容错性。
Yarn的定义
Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
Yarn在产品中位置
Yarn是Hadoop2.0中的资源管理系统,它是一个通用的资源管理模块,可为各类应用程序进行资源管理和调度。
Yarn是轻量级弹性计算平台,除了MapReduce框架,还可以支持其他框架,如Spark、Storm等。
多种框架统一管理,共享集群资源:
资源利用率高
运维成本低
数据共享方便
Yarn高可靠性
lResourceManager的高可用性方案是通过设置一组Active/Standby的ResourceManager节点来实现的。与HDFS的高可用性方案类似,任何时间点上都只能有一个ResourceManager处于Active状态。当Active状态的ResourceManager发生故障时,可通过自动或手动的方式触发故障转移,进行Active/Standby状态切换。
l在未开启自动故障转移时,Yarn集群启动后,管理员需要在命令行中使用yarn rmadmin命令手动将其中一个ResourceManager切换为Active状态。当需要执行计划性维护或故障发生时,则需要先手动将Active状态的ResourceManager切换为Standby状态,再将另一个ResourceManager切换为Active状态。
l开启自动故障转移后,ResourceManager会通过内置的基于ZooKeeper实现的ActiveStandbyElector来决定哪一个ResouceManager应该成为Active节点。当Active状态的ResourceManager发生故障时,另一个ResourceManager将自动被选举为Active状态以接替故障节点。
l当集群的ResourceManager以HA方式部署时,客户端使用的“yarn-site.xml”需要配置所有ResourceManager地址。客户端(包括ApplicationMaster和NodeManager)会以轮询的方式寻找Active状态的ResourceManager。如果当前Active状态的ResourceManager无法连接,那么会继续使用轮询的方式找到新的ResourceManager。
l备RM升主后,能够恢复故障发生时上层应用运行的状态。当启用ResourceManager Restart时,重启后的ResourceManager就可以通过加载之前Active的ResourceManager的状态信息,并通过接收所有NodeManager上container的状态信息重构运行状态继续执行。这样应用程序通过定期执行检查点操作保存当前状态信息,就可以避免工作内容的丢失。状态信息需要让Active/Standby的ResourceManager都能访问。当前系统提供了三种共享状态信息的方法:通过文件系统共享(FileSystemRMStateStore)、通过LevelDB数据库共享(LeveldbRMStateStore)或通过ZooKeeper共享(ZKRMStateStore)。这三种方式中只有ZooKeeper共享支持Fencing机制。Hadoop默认使用ZooKeeper共享。
- 点赞
- 收藏
- 关注作者
评论(0)