目录
五:YARN(Yet Another Resource Negotiator) 架构
一:什么是Hadoop?
- Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构
- 主要解决,海量数据的存储和海量数据的分析计算问题。
- 广义上来说,HADOOP 通常是指一个更广泛的概念——HADOOP 生态圈
- Hadoop 三大发行版本: Apache、Cloudera、Hortonworks。
a:Apache 版本最原始(最基础)的版本,对于入门学习最好。
b:Cloudera 在大型互联网企业中用的较多
c:Hortonworks 文档较好。
二:Hadoop 的优势
- 高可靠性
因为 Hadoop 假设计算元素和存储会出现故障,因为它维护多个工作数据副本,在出现故障时可以对失败的节点重新分布处理 - 高扩展性
在集群间分配任务数据,可方便的扩展数以千计的节点 - 高效性
在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度 - 高容错性
自动保存多份副本数据,并且能够自动将失败的任务重新分配
三:Hadoop 组成
- Hadoop HDFS
一个高可靠、高吞吐量的分布式文件系统。 - Hadoop MapReduce
一个分布式的离线并行计算框架 - Hadoop YARN
作业调度与集群资源管理的框架。 - Hadoop Common
支持其他模块的工具模块(Configuration、RPC、序列化机制、日志
操作)。
四:HDFS 架构 概述
- NameNode(nn)
存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。 - DataNode(dn)
在本地文件系统存储文件块数据,以及块数据的校验和。 - Secondary NameNode(2nn)
用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
五:YARN(Yet Another Resource Negotiator) 架构
- ResourceManager(rm)
处理客户端请求、启动/监控 ApplicationMaster、监控 NodeManager、资源分配与调度 - NodeManager(nm)
单个节点上的资源管理、处理来自 ResourceManager 的命令、处理来自 ApplicationMaster 的命令。
它会定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态;同时会接收并处理来自AM
的Container 启动/停止等请求。 - ApplicationMaster
数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
用户提交的应用程序均包含一个AM,负责应用的监控,跟踪应用执行状态,重启失败任务等。ApplicationMaster
是应用框架,它负责向ResourceManager协调资源,并且与NodeManager协同工作完成Task的执行和监控。 - Container
对任务运行环境的抽象,封装了 CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息 。
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM
申请资源时,RM为AM返回的资源便是用Container 表示的。 YARN会为每个任务分配一个Container且该任务只能
使用该Container中描述的资源。 - 简介(detail)
YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。
其核心出发点是为了分离资源管理与作业调度/监控,实现分离的做法是拥有一个全局的资源管理器。以及每个应用程序
对应一个的应用管理器(ApplicationMaster,AM)。 - 架构如下: