HDFS原理及架构
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,HDFS架构HDFS是一个master/slave结构的服务,其中NameNode是master,一般只在一台节点上启动;DataNode是slave,一般每台节点都会启动一个;DataNode不断地
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
数据库的删表语录
网络电视服务器地址
网络安全提醒短信
杭州制造软件开发工程师
江苏标准软件开发定制价格
大型数据库技术PPT
浦东新区市场软件开发近期价格
游戏软件开发的是谁
西安服务器租用
学过数据库之后的体会
悠游网络技术服务工作室
国家网络安全法试题
go服务器关闭完成协程未完成
单位网络安全职能
网络技术需要学什么编程语言
网络技术学习方法小学
网络技术培训 学校
留守儿童网络安全教育简报
pg数据库表名称长度限制
如何检查远程服务器是否启动
数据库怎么看祖先
如何将注册的数据存入数据库
国产化服务器供应厂家
上传文件到服务器路径
网络安全周系列海报
软件开发总是做低级的工作
青年网络安全教育
乐山跑腿app软件开发费用
2019美国的网络安全
韶关市内货运软件开发