HDFS总结
发表于:2024-11-22 作者:热门IT资讯网编辑
编辑最后更新 2024年11月22日,HDFS最近学习总结一. hdfs整体运行机制:客户把一个文件存入HDFS中,其实HDFS会把文件切成块进行存储,会分散存储到N台Linux系统中(存储文件块的角色是:datanode)(重要的是切块
HDFS最近学习总结
一. hdfs整体运行机制:
- 客户把一个文件存入HDFS中,其实HDFS会把文件切成块进行存储,会分散存储到N台Linux系统中(存储文件块的角色是:datanode)(重要的是切块的行为是由客户端决定的)
- 一旦文件被切块切块存储,HDFS一定要有个机制,需要记录每一个文件的切块信息和每个切块具体的存储机器。(记录块信息的是namenode)
- 需要保证数据的安全性,HDFS将每一个块都在集群中存放多个副本(副本数是由存储时的客户端决定的)。
- 总结 : 一个HDFS系统是由一台运行了namenode的服务器和N台运行了datanode的服务器组成。
二. 知识点:
- 元数据由namenode管理
- 元数据:HDFS的目录结构及每一个文件的块信息(块的id,副本数量,存放位置等)
三. namenode元数据记录位置 :
- namenode把实时的完整元数据存放到内存中
- namenode还会在磁盘中存储内存元数据在某个时间上的镜像文件fsimage
- namenode会把让元数据变化的客户端操作记录(类似添加)在edits日志文件中。
四. secondarynamenode 责任 :
- secondarynamenode会定期从namenode上下载fsimage镜像和新生成的edits日志,然后加载fsimage镜像到内存中,然后顺序解析edits文件,对内存中的元数据对象进行修改(整合)整合完成后,将内存元数据序列化成一个新的fsimage,并将这个fsimage镜像文件上传给namenode。这个过程叫checkpoint
- secondary namenode每次做checkpoint操作时,第一次checkpoint需要下载fsimage,以后就不用下载了,因为自己的机器上就已经有了。
- 总结:secondarynamenode 会把fsimage 和 edits 下载过到自己的机器上,进行序列化成元数据在传给namenode,可以记性单点故障处理。所以 secondarynamenode最好也配置下。