Hadoop构架概览
hadoop是一个开源的软件框架,是一个利用商业硬件处理和存储大型数据的软件。从下到上主要有五个主要的组成部分:
- 集群,是一套主机(节点)组成的。节点可以以机架划分。这个是硬件级别的构架.
-
YARN构架 (目前为止的另外一个资源管理器)是一个负责提供计应用执行的时候需要的计算资源的框架(也就是cpu,内存等等). 两个重要的部分如下::
-
一个资源管理器 (每个集群一个) 作为master. 资源管理器知道下面的每一个slave节点在哪里(机架感知) 以及他们这些节点有哪些资源可以使用. master运行若干服务。最重要的是资源调度器,资源调度器决定怎样分配资源.
-
节点管理器 (一个集群有很多个r)是slave构架组成. 当节点管理器启动的时候,将自己注册到资源管理器,并且定时的相资源管理器发送心跳信息。每一个节点管理器提供自己的资源给集群。那么他的资源其实就是内存的大小,有多少个vcores。再运行时状态,资源调度器会决定如何使用这些资源:一个容器是这些资源的一部分并且被客户端用来运行一个程序。
-
-
HDFS是一个负责提供持久的,可靠的,分布式的存储框架。用来存储输入和输出(除开中间输出)。
- 其他的存储系统:例如Amazon S3.
- MapReduce 框架是一个实现mapreduce算法的软件层
YRAN构架以及HDFS完全分开并且彼此独立。前者提供资源并且运行一个程序后者则提供存储。mapreduce则很多可以运行在YRAN顶层的框架之一。(虽然目前为止还是唯一的,但是到2016就不唯一了)
YRAN:启动应用
在 YARN中, 至少有下面三个部分:
- Job Submitter (客户端)
- Resource Manager (master端)
- Node Manager (slave端)
应用的启动如下所示:
- 一个客户端提交一个程序给资源管理器
- 资源管理器分配一个容器
- 资源管理器联系相关的节点管理器
- 节点管理器启动容器
- 容器执行应用Master
应用Master负责单个应用的执行。他向资源调度器请求容器,执行特定的程序(例如java的main方法)。应用master知晓应用的逻辑因此是框架特特异的。mapreduce提供自己实现的应用master。
来自: http://blog.csdn.net//mrcharles/article/details/50478906