旁白者笔下初遇Hadoop
昨晚整理的资料不知道是没保存还是怎么的,今天一开机就是找不到,差点没脑裂.所以先提前提醒下伙伴们做事养成随手保存的习惯.其实,我是个蛮谨慎的人的,但是聪明反被聪明误,淹死的往往是会游泳的人,所以在写代码的时候,随手写随手测,小心驶得万年船.
今天没有代码,纯理论,有点枯燥,但是我想对理解NN的工作机制还是很有帮助的.昨天还画了好几遍的图,今天就不画了,大家就看纯文本吧,纯纯的青春,纯纯的爱,就算青春不再依旧热爱.好了,接下来我们就看看NN是怎么工作的吧.
4.NameNode
用于存储元数据及管理DataNode节点.
元数据
NameNode维护HDFS中的元数据信息:
1.文件的存储路径
2.文件的权限
3.文件和Block之间关系的信息
4.Block数量信息
5.副本数量
6.Block和DataNode之间的关系信息
每条元数据大小约150B
可以通过core-site.xml的dfs.tmp.dir属性的配置来更改元数据信息在NameNode节点上的磁盘路径.若不配置,默认路径是/tmp
元数据若只存在内存中,一旦断电,元数据便会丢失,整个集群就无法工作了,但若只放在磁盘中,响应客户的速度必然不够快,为了解决这个问题,就有了fsimage(镜像也称快照)和edits(日志),以及SecondaryNameNode.
fsimage是用来备份的,edits是用来存储日志的,而SNN的作用是将fsimage与edits合并.
当HDFS启动时,NameNode会先滚动edits生成一个空的edits.inprogress,接着将fsimage和edits加载到内存中合并更新fsimage的元数据.然后等待每个DataNode向NameNode汇报自身的存储信息.NameNode收到这些信息之后,会做汇总和检测,检测数据是否完整,副本数量是否足够,若检测