HDFS原理及架构
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,HDFS架构HDFS是一个master/slave结构的服务,其中NameNode是master,一般只在一台节点上启动;DataNode是slave,一般每台节点都会启动一个;DataNode不断地
千家信息网最后更新 2025年12月02日HDFS原理及架构
HDFS架构
HDFS是一个master/slave结构的服务,其中NameNode是master,一般只在一台节点上启动;DataNode是slave,一般每台节点都会启动一个;DataNode不断地主动向NameNode发送心跳、汇报block信息等;为了对NameNode进行备份,还会有一个SecondaryNameNode
HDFS各类操作
- 创建目录

client与namenode直接交互,在INode中创建目录节点,并将操作写入edit log中即可,全程不需要datanode参与。 - 删除文件
客户端与namenode交互删除文件,namenode只是标记要删除,但不会主动通知datanode;
当对应的datanode向namenode发送心跳时,namnode会把删除指令放到返回值里;
所以一般删除不是立即删除,而是有一定的延迟。 - 读文件
client先与namenode交互,通过getBlockLocatitions方法获取到文件block所在节点,然后client再与datanode交互获取具体数据;
block可能不是一次全部返回,可能需要多次调用getBlockLocatitions。
客户端读数据时如果DN发生故障,则会接着读取下一个数据块儿,并记录这个出故障的节点;读数据返回中包含了数据的校验和,如果发现错误,会报告给NN,并从其它副本读取。 - 写文件
client先与NN交互,在NN命名空间中创建一个新文件;
第二步client真正写入之前再跟NN交互获取要在哪儿写,addBlock返回一个LocateBlock对象,包含数据库标志和版本号;
LocateBlock还提供了跟DN交互的数据流管道,client写入到管道中的数据被分为一个个的文件包,这些被放入到一个输出队列中;
第三步client跟DN交互写入数据,第一个节点写完,由第一个DN向第二个DN写,写完还要返回ack确认信息;如果收到ack确认信息,则将这个文件包从队列中删除;
写完一个数据块之后,DN会跟NN交互,向NN提交这个数据块。
对于某个DN发生故障的情况:
1,先关闭数据流通道,正在写的数据包由于没有收到ack,不会从队列中删除,数据不会丢失;
2,正常的DN上的数据块会被赋予一个新的版本号,并通知NN。主要是故障节点恢复后,发现版本号跟NN上的不一致就会自动删除了;
3,数据流管道删除错误节点并重新建立管道,继续在正常几点上写数据;
4,文件关闭后,NN发现此数据库没有达到副本数要求,会选择一个新的DN来复制数据块。
- SecNameNode备份
hdfs的元数据保存在Inode对象中,但是namenode是一个单点master,如果数据都在内存则无法进行故障恢复。
hdfs有一个检查点机制,会把某个时间点内存中的Inode持久化到fsimage文件中,同时对每个操作记录写入到edit log中。
SecNameNode则负责把namenode上的fsimage和edit log合并。
1,SecNN不断地获取NN上editlog的大小,如果太小则不做处理;
2,如果editlog较大,则SecNN通知NN发起一次检查点操作;
3,NN会产出一个新的editlog--edit.new,此后对元数据的操作都写入到edit.new文件中;
4,而SecNN则通过http接口分别将NN上的fsimage和editlog拉取到SecNN节点上,并在内存中合并,并产出文件fsimage.ckpt;
5,SecNN再主动通知NN镜像已合并完成;
6,NN通过http接口拉取过来fsimage.ckpt并覆盖原来的fsimage,最后将edit.new改回edit
HDFS HA
https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/index.html
数据
文件
节点
故障
管道
信息
内存
数据流
版本
队列
主动
不断
副本
备份
客户
客户端
对象
接口
数据库
检查点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库系统概论分析
VB可考数据库工程师吗
内蒙古智能还款软件开发
河南犀利牛网络技术有限公司
关于网络安全教育自查自纠
美信网络技术公司招聘
爬虫数据库运行
鹏肖服务器
湛江安卓软件开发哪家好
本科论文入国家数据库吗
同城互联网科技有限公司
剑3插件数据库
如何提升手机网络安全
传感器数据如何存储到数据库
静安区海航软件开发供应商代理商
体现互联网科技的配色方案
国家网络安全学院是谁投资的
软件开发务虚会
怎么选 服务器
车载网络安全开发
网络安全法出台
网络安全色共有多少种
怎样看炉石传说服务器状态
access数据库查询格式
哪里可以请网络安全员
官气小说软件开发
青岛网络安全展馆
阿里云服务器提示文件有病毒
福州市软件开发有限公司招聘
中国网络安全行业龙头股