集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

学习文章

当前位置:首页 > >学习文章 > >

HDFS架构

发布时间: 2022-11-24 16:51:12

HDFS架构,HDFS中的存储单元(Block),一个文件会被切分成若干个固定大小Block(块默认是64MB,可配置,若不足64MB,则单独一个块),存储在不同结点上,默认每Block有三个副本(副本越多,硬盘利用率越低), Block大小和副本数通过Client端上传文件时设置,文件上传成功后,副本数可变,Block Size不可变。

如一个200MB文件会被切成4块,存在不同结点,如一台机器出现故障后,会自动复制副本,恢复到正常状态,只要三个机器不同时发生故障,数据不会丢失。

HDFS包含3种结点,NameNode(NN)、Secondary NameNode(SNN)、DataNode(DN)。以下分别介绍各个结点的功能,HDFS架构图如图1所示。


图1 HDFS架构图

1.NN结点功能

接收客户端的读写请求,NN中保存文件的Metadata数据(元数据是最重要的,元数据丢失的话,DataNode也就丢失)包括除文件内容外的文件信息;文件包含哪些Block; Block保存在哪个DN上(由DN启动时上报,因为这个可能随时变化),为了提高客户端查询元数据速度,NN中的Metadata信息在启动后会加载到内存,但是内存中的数据大小总是一定的,Metadata持久化存储在硬盘的文件名为Fsimage, Block的位置信息不会保存到Fsimage, Edits日志文件记录元数据Metadata的操作日志。例如,有一个插入文件的操作,Hadoop不会直接修改Fsimage,而是记录到Edits日志记录文件中。隔段时间后会合并Edits和Fsimage,生成新的Fsimage, Edits的机制和关系型数据库事务的预提交是一样的机制,合并的机制主要由下面SNN结点完成。

2.SNN结点功能

SNN结点的主要工作是帮助NN合并Edits Log,减少NN启动时间,另一方面合并会有大量的I/O操作,但是NN最主要的作用是接收用户读写服务,所以大量的资源不能用来进行合并操作。SNN不是NN的备份,但可以做一部分的元数据备份,而不是实时备份(不是热备)。满足合并时机后(合并时机:设置时间间隔FS.Checkpoint.Period,默认3600秒;或者配置Edit Log大小,最大64MB),SNN会复制NN的Edits日志记录文件和Fsimage元数据文件到SNN,可能会跨网络复制,这时NN会创建一个新的Edits文件来记录用户的读写请求操作,然后SNN就会合并为一个新的Fsimage文件,然后SNN会把这个文件推送给NN,最后NN会用新的Fsimage替换旧的Fsimage,然后如此反复进行,如图2所示。


图2 Fsimage和Edits合并流程图

3.DN结点功能

存储数据,启动DN线程的时候向NN汇报Block信息;通过向NN发送心跳保持与其联系(3秒/次),如果NN10分钟没有收到DN心跳,则认为其Lost,并Copy其上的Block到其他DN。

副本存储策略如下。

第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台硬盘不太满,CPU不太忙的结点。

第二个副本:放置在与第一个副本不同的机架的结点上。

第三个副本:放置在与第二个副本相同的机架结点(一个机架电源相同,保证安全的同时提高速度)。

上一篇: 物联网的受限节点

下一篇: 物联网传输层协议

十五年老品牌
微信咨询:togogoi 咨询电话:18922156670 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!