1.NameNode(管理节点)node
Namenode 管理着文件系统的命令空间(Namespace)。它维护着文件系统树以及文件树中全部的文件和文件夹的元数据(metadata),元数据包括编辑日志(edits)和镜像文件。管理这些信息的文件有两个,分别是Namespace 镜像文件(fsimage)和编辑日志文件,编辑日志主要是记录对hdfs进行的修改。镜像文件主要是记录hdfs的文件树形结构。这些信息被Cache在RAM中,固然,这两个文件也会被持久化存储在本地硬盘。Namenode记录着每一个文件中各个块所在的数据节点的位置信息,可是他并不持久化存储这些信息,由于这些信息会在系统启动时从数据节点重建。数据库
2.DataNode(工做节点)服务器
Datanode是文件系统的工做节点,他们根据客户端或者是namenode的调度存储和检索数据,而且按期向namenode发送他们所存储的块(block)的列表。没有namenode,文件系统是没法使用的。事实上,若是运行namenode服务的服务器坏掉,文件系统上的全部文件将会丢失。由于咱们不知道如何根据DataNode的块进行重建文件。全部对NameNode进行容错冗余机制是很是重要的。spa
集群中的从节点服务器都运行一个DataNode后台程序,这个后台程序负责把HDFS数据块读写到本地的文件系统。当须要经过客户端读/写某个数据时,先由NameNode告诉客户端去哪一个DataNode进行具体的读/写操做,而后客户端直接与这个DataNode服务器上的后台程序进行通讯,而且对相关的数据块进行读/写操做。代理
3.secondary NameNode(至关于MySQL数据库中主从复制的从节点)日志
Secondary NameNode是一个用来监控HDFS状态的辅助后台程序。和NameNode同样,每一个集群都有一个Secondary NameNode,而且部署在一个单独的服务器上。Secondary NameNode不一样于NameNode,它不接受或者记录任何实时的数据变化,可是,它会与NameNode进行通讯,以便按期地保存HDFS元数据的快照。因为NameNode是单点的,经过Secondary NameNode的快照功能,能够将NameNode的宕机时间和数据损失下降到最小。同时,若是NameNode发生问题,Secondary NameNode能够及时地做为备用NameNode使用。资源
4.ResourceManager部署
ResourceManage 即资源管理,在YARN中,ResourceManager负责集群中全部资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照必定的策略分配给各个应用程序(其实是ApplicationManager)。it
RM包括Scheduler(定时调度器)和ApplicationManager(应用管理器)Schedular负责向应用程序分配资源,它不作监控以及应用程序的状态跟踪,而且不保证会重启应用程序自己或者硬件出错而执行失败的应用程序。ApplicationManager负责接受新的任务,协调并提供在ApplicationMaster容器失败时的重启功能.每一个应用程序的AM负责项Scheduler申请资源,以及跟踪这些资源的使用状况和资源调度的监控。io
5.Nodemanager
NM是ResourceManager在slave机器上的代理,负责容器管理,并监控它们的资源使用状况,以及向ResourceManager/Scheduler提供资源使用报告。