HDFS(名称节点与数据节点)简介

您所在的位置:网站首页 查看集群数据节点的命令是什么 HDFS(名称节点与数据节点)简介

HDFS(名称节点与数据节点)简介

2024-07-07 01:28| 来源: 网络整理| 查看: 265

HDFS:分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群

这些节点分为主从节点,主节点可叫作名称节点(NameNode),从节点可叫作数据节点(DataNode)

 

HDFS的存储模式:

HDFS通过块的模式存储数据,默认情况下一个块是64M,把大文件拆分成多个块,可以最小化寻址开销 这样的好处是: 1.支持大规模文件存储 : 文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量 2.简化系统设置 : 因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据 3.适合数据备份 : 每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性

 

名称节点最主要功能:名称节点记录了每个文件中各个块所在的数据节点的位置信息

名称节点(NameNode)与DataNode的功能:

在HDFS中,名称节点(NameNode)负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog FsImage用于维护文件系统树以及文件树中所有的文件和文件夹的元数据 操作日志文件EditLog中记录了所有针对文件的创建、删除、重命名等操作 名称节点的启动: 1.在启动时,系统会将FsImage中的内容加载到内存中去,之后再执行EditLog中的操作,使得内存中的数据和实际同步,存在内存中的支持客户端的读。 2.一旦在内存中成功建立文件系统元数据的映射,则创建一个新的FsImage文件和一个空的EditLog文件 3.名称节点起来之后,HDFS中的更新操作会重新写到EditLog文件中,因为FsImage文件一般都很大(GB级别的很常见), 如果所有的更新操作都往FsImage文件中添加,这样会导致系统运行的十分缓慢,但是,如果往EditLog文件里面写就不会这样, 因为EditLog 要小很多。每次执行写操作之后,且在向客户端发送成功代码之前,edits文件都需要同步更新 但为了防止EditLog过大的问题:引入了第二名称节点(SecondaryNameNode)第二名称节点:是HDFS架构中的一个组成部分,它是用来保存名称节点中对HDFS 元数据信息的备份,并减少名称节点重启的时间。 SecondaryNameNode一般是单独运行在一台机器上 SecondaryNameNode让EditLog变小的工作流程: (1)SecondaryNameNode会定期和NameNode通信,请求其停止使用EditLog文件,暂时将新的写操作写到一个新的文件edit.new上来,这个操作是瞬间完成,上层写日志的函数完全感觉不到差别; (2)SecondaryNameNode通过HTTP GET方式从NameNode上获取到FsImage和EditLog文件,并下载到本地的相应目录下; (3)SecondaryNameNode将下载下来的FsImage载入到内存,然后一条一条地执行EditLog文件中的各项更新操作,使得内存中的FsImage保持最新;这个过程就是EditLog和FsImage文件合并; (4)SecondaryNameNode执行完(3)操作之后,会通过post方式将新的FsImage文件发送到NameNode节点上

 

(5)NameNode将从SecondaryNameNode接收到的新的FsImage替换旧的FsImage文件,同时将edit.new替换EditLog文件,通过这个过程EditLog就变小了

 

工作流程图:

DataNode:数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表即HDFS需要实现的方面: 1.兼容廉价的硬件设备 2.流数据读写 3.大数据集 4.简单的文件模型 5.强大的跨平台兼容性 但这样面临的局限性: 1.不适合低延迟数据访问 2.无法高效存储大量小文件 3.不支持多用户写入及任意修改文件  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3