独家解析 hadoop五大节点

1.NameNode(管理节点)

Namenode 管理着文件系统的命令空间(Namespace)。它维护着文件系统树以及文件树中所有的文件和文件夹的元数据(metadata),元数据包括编辑日志(edits)和镜像文件。管理这些信息的文件有两个,分别是Namespace 镜像文件(fsimage)和编辑日志文件,编辑日志主要是记录对hdfs进行的修改。镜像文件主要是记录hdfs的文件树形结构。这些信息被Cache在RAM中,当然,这两个文件也会被持久化存储在本地硬盘。Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,因为这些信息会在系统启动时从数据节点重建。

2.DataNode(工作节点)

 Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。没有namenode,文件系统是无法使用的。事实上,如果运行namenode服务的服务器坏掉,文件系统上的所有文件将会丢失。因为我们不知道如何根据DataNode的块进行重建文件。所有对NameNode进行容错冗余机制是非常重要的。

集群中的从节点服务器都运行一个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)。

RM包括Scheduler(定时调度器)和ApplicationManager(应用管理器)Schedular负责向应用程序分配资源,它不做监控以及应用程序的状态跟踪,并且不保证会重启应用程序本身或者硬件出错而执行失败的应用程序。ApplicationManager负责接受新的任务,协调并提供在ApplicationMaster容器失败时的重启功能.每个应用程序的AM负责项Scheduler申请资源,以及跟踪这些资源的使用情况和资源调度的监控。
5.Nodemanager
  NM是ResourceManager在slave机器上的代理,负责容器管理,并监控它们的资源使用情况,以及向ResourceManager/Scheduler提供资源使用报告。

猜你喜欢

转载自blog.csdn.net/kangshufu/article/details/92432609