大数据基础:HDFS(分布式文件系统)中,NameNode与DataNode的区别
概述
1、hsfs集群有两类节点(管理节点-工作节点)的运行模式,即一个namenode与多个datanode。
2、客户端(client)代表用户通过与namenode和datanode交互来访问整个系统,客户端提供一个类似于posix(可以移植操作系统界面)的文件系统接口,因此用户不需要知道datanode与namenode也可以实现其功能。
DataNode
datanode是文件系统的工作节点,它根据需求储存或者检索数据块(受客户端与namenode调度),并定期向namenode发送datanode储存的数据块列表(心跳信息)。负责为客户端提供读写服务。
NameNode
namenode负责储存文件的元数据.(文件分块信息,储存节点信息,副本储存等信息)。
1.namenode管理文件系统的命名空间,它维护者文件系统树及整棵树所有的文件和目录,这些信息以两个文件形式永久保存在本地磁盘(命名空间经镜像文件和编辑日志文件),镜像文件为:fsimage(用于维护hdfs中所有文件和文件夹的元数据),edits:编辑日志文件(用于记录所有针对文件的创建,删除,修改等操作)
2.namenode也记录着每个文件中各个快的数据节点信息,但它并不永久保存数据节点的位置信息,因为这些信息在系统启动时根据数据节点信息重建。
3.namenode会定时接受datanode的心跳信息,如果发现datanode节点有故障,就会重新为失败的任务分配节点。
4.负责接收client(客户端)的请求,提供metadata数据信息。
5。namenode的启动:以只读方式启动,加载fsimage文件到内存,edits文件会定期合并,形成新的fsimage文件用来替代旧的fsimage文件。
6.没有namenode,文件系统无法使用,如果namenode服务器宕机,文件系统上的所有文件将丢失,因为我们不知道如何根据datanode快重新拼接文件。