• hdfs的NameNode学习


    NameNode的文件结构包括VERSION、edits、fsimage、fstime文件目录

    其中dfs.name.dir属性对应的目录列表中可查看到:

    1.VERSION文件是JAVA属性文件,其中包含运行HDFS的版本信息。包含内容

     namespaceID是文件系统的唯一标识符,当文件系统第一次格式化时,便会被创建,这个标识符是必须跟各DataNode和NameNode保持一致。NameNode会使用它识别新的DataNode,DataNode只有在向NameNode注册后才会获得此namespaceID。

    cTime属性标记了NameNode存储空间创建的时间。对于新格式化的,这里时间为0,只要文件系统被更新,就会更新到一个新的时间戳上。

    StorageType指出此存储目录包含一个NameNode的数据结构,在DataNode中它的属性值为DATA_NODE,在DataNode中它的属性值为NAME_NODE。

    LayoutVersion是一个负的整数,定义了HDFS持久数据结构的版本。各节点的版本号要一致。

    2.edits编辑日志(edit log)

    (1)编辑日志中会在NameNode上记录客户执行事件,并在内存中保存一个文件系统元数据,这个描述符在编辑日志有了改动后更新,内存中的元数据用来提供读数据请求服务。

    (2)编辑日志会在每次成功操作之后,且成功代码尚未返回给客户端之前进行刷新和同步。对于要写入多个目录的操作,写入流要刷新和同步到所有的副本上,保证操作不会因为故障而丢失数据。

    3.fsimage文件系统映像(filesystem image)

    fsimage文件中包含以序列化格式存储的文件系统目录和文件inodes.每个inodes表征一个文件或目录的元数据信息,以及文件的副本数、修改和访问时间等信息。

    fsimage文件是文件系统元数据的持久性检查点,和编辑日志不同,它不会在每个文件系统写操作后进行更新; 元数据的最新状态可以通过从磁盘中读取fsimage文件加载到内存中来进行重建恢复,然后进行编辑日志中的操作(NameNode启动时也做的事情)

  • 相关阅读:
    秘密挤奶机(最大流,二分)
    伊基的故事 I
    多源汇最大流(最大流)
    无向树是二分图
    上下界可行流
    圆桌问题(最大流,二分图,网络流24题)
    双栈排序
    观光奶牛
    拜访奶牛
    愤怒的牛&数列分段II
  • 原文地址:https://www.cnblogs.com/zyanrong/p/16203404.html
Copyright © 2020-2023  润新知