HDFS架构
节点分为两类:一类叫“主节点”(Master Node)或者也被称为“名称结点”(NameNode),另一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode)
- NameNode(NN):负责管理集权的命名空间,并且为所有文件和目录维护一个树状结构的元数据信息。元数据持久化存储在硬盘中。保存文件,block ,datanode之间的映射关系。全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告(Blockreport)。
- FsImage(文件系统镜像文件),EditsLog(编辑日志文件):二者都存储在NN中,文件系统镜像文件存储所有命名空间的信息,编辑日志文件存储所有事务记录。二者是HDFS的核心数据结构。
- SecondaryNameNode(SNN):不是真正意义上的NN,主要负责周期性地把FsImage和EditsLog合并,然后清楚旧的日志文件。
- Block(块):HDFS的文件划分为多个64MB的大块作为独立存储单元,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定。
- DataNode(DN):存储文件块内容,文件内容保存在磁盘中,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。DN维护block id到DN的映射关系。
•保存Block
•启动DN线程的时候会向NN汇报block信息
•通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN。