namenode启动过程简要分析

1、Hadoop Distributed File System整体架构
image.png

1)主从架构,单个namenode,多个datanode;

2)原始数据都被分成固定大小(最后一个block除外)的block存储在各个DataNode上,namenode只负责存储metadata:文件名、副本数、存储在哪个DataNode等等信息,整个分布式文件系统的所有metadata组成存储在namenode上的namespace,namespace和大多数文件系统类似,提供新建、删除、移动、重命名等操作,namespace是一个树形结构;

3)client读获取取数据,都是先从namenode获取metadata,然后到对应的DataNode获取需要的数据,目的是给namenode降压,否则如果都从namenode来获取原始数据的话,namenode就会成为最大的瓶颈。

2、namenode启动过程

hdfs存储metadata涉及两个文件:FsImageEditLog
FsImage存储着整个文件系统的namespace,每个EditLog则记录着每个block的每一次变更。

FsImage的生成:通过bin/hdfs namenode -format对namenode进行格式化的时候,会在namenode所在节点本地生成FsImage文件。

当通过sbin/start-dfs.sh第一次启动文件系统的时候,系统会把FsImage读取到内存中,而DataNode节点数据的相关变动,则保留在一系列的EditLog文件中,在下次(非第一次)文件系统重新启动的时候,系统是先把目前的FsImage和所有的EditLog进行合并重新生成一个新的FsImage,然后读取这个新的FsImage到内存中,这样做是因为读取FsImage的速率比读取大量EditLog要快捷的多。

secondaryNameNode作用:在非第一次启动namenode的时候,要对FsImage和EditLog进行合并处理,这个时候,如果上次服务器运行时间很长的话,那EditLog的数量将会非常大,这样会导致合并的过程相当长,为了避免这个问题,HDFS系统会每隔一段时间(默认1小时,可配置)就对FsImage和EditLog进行合并操作,这个工作是由secondaryNameNode来完成的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先,我们在使用前先看看HDFS是什麽?这将有助于我们是以后的运维使用和故障排除思路的获得。 HDFS采用mast...
    W_Bousquet阅读 4,281评论 0 2
  • 认识HDFS HDFS的特点: 高容错性高吞吐量故障的检测和自动快速恢复流式的数据访问大数据集一次写入,多次读写 ...
    Bloo_m阅读 3,317评论 6 8
  • —— 我多么希望,有一个门口 早晨,阳光照在草上 我们站着 扶着自己的门扇 门很低,但太阳是明亮的 草在结它的种子...
    忆子倩阅读 413评论 0 0
  • 许久不见的师兄: 我们聊聊可好?说说我们的往事。 从堂姐的口中知道你的名字,在堂姐的班级照那里知道你的样子,在学生...
    啊豁阅读 328评论 0 0
  • 在演技普通高超的如今,“你到底爱不爱我”.......这个问题总是困扰着情侣。虽然伴侣说的天花乱坠,但最终背叛的事...
    百家之言阅读 408评论 0 0