网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
基于内存存储 :不会和磁盘发生交换
1.简介
- namenode 是整个文件系统的管理节点。他维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
文件包括:
- fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
- edits:操作日志文件。
- fstime:保存最近一次checkpoint的时间。
2.NameNode的工作特点
- NameNode始终在内存中保存metedata,用于处理“读请求”,到有“写请求”到来时,NameNode首先会写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回。
- Hadoop会维护一个人fsimage文件,也就是NameNode中metedata的镜像,但是fsimage不会随时与NameNode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary NameNode就是用来合并fsimage和edits文件来更新NameNode的metedata的。
3.NameNode主要功能
- 接受客户端的读写服务
- 收集DataNode汇报的Block列表信息
4.NameNode保存metadata信息包括
- 文件owership和permissions文件大小
- 时间(Block列表:Block偏移量),位置信息,Block每副本位置(由DataNode上报)
5.NameNode持久化
- NameNode的metadate信息在启动后会加载到内存
- metadata存储到磁盘文件名为” fsimage ”
- Block的位置信息不会保存到fsimage
- edits记录对metadata的操作日志
6.DataNode(DN)
本地磁盘目录存储数据(Block),文件形式 . 同时存储Block的元数据信息文件
启动DN时会向NN汇报block信息, 通过向NN发送心跳保持与其