HDFS集群中以Master-Slave模式运行,主要有两类节点:一个Namenode节点(即master)和多个Datanode节点。Namenode管理文件系统的Namespace.他维护着文件系统树以及文件树中所有的文件和文件夹的元数据。
hdfs架构图:
Namenode:
Namenode管理文件系统的Namespace。它维护着文件系统树以及文件树中所有的文件和文件夹的元数据(Metadata).管理这些信息的文件有两个,分别是Namespace镜像文件(Namespace p_w_picpath)和操作日志文件(edit log), 这些信息被Cache在RAM中,当然,这两个文件也会被持久化存储在本地磁盘。Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是它并不持久化存储这些信息,因为这些信息会在系统重启时从数据及节点重建。
Namenode结构抽象图:
客户端代表用户与namenode和datanode交互来访问整个文件系统。客户端提供了一系列的文件系统接口,因此我们在编程时,几乎无需知道datanode和namenode,即可完成我们所需要的功能。
Datanode:
Datanode是文件系统的工作节点,他们根据客户端或者namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表.
Namenode容错机制:
没有了Namenode,HDFS就不能工作。事实上,如果运行namenode的机器坏掉的话,系统中的文件将会完全丢失,因为没有其他方法