> 文章列表 > hdfs-namenode

hdfs-namenode

hdfs-namenode

namenode解析:
维护整个文件系统目录结构树,文件、目录的各种信息(相当于ls -l),还有文件(对应的数据块列表)存放在hdfs各个节点的信息;
接受客户端(用户)的访问(操作)请求;
Namenode(存储的信息主要存储在以下4个文件)主要有以下4个文件控制它的配置【错误,记忆的偏差点】:fsimage,edits,seed_txid,version...
(上述文件所在路径有一个参数(dfs.namenode.name.dir )去控制:)
配置文件:hdfs-default.xml - 配置namenode的各种属性 是hdfs-site.xml的 派生(会覆盖hdfs-default.xml),当没有配置hdfs-site.xml时,
会使用hdfs-default.xml, (C:\\hadoop-3.2.2\\share\\hadoop\\hdfs\\hadoop-hdfs-3.2.2.jar\\hdfs-default.xml)
其中dfs.namenode.name.dir 属性就是配置namenode这几个(fsimage,edits,seed_txid,version)文件存放的地方,也是core-site.xml中配置的临时目录的地方
案列中:/data/hadoop_repo/dfs/name:
in_use.lock 每次启动时看这个文件是否在,在的话就不会再启动了
在主节点的 /data/hadoop_repo/dfs/name/current/:
fsimage,edits,seed_txid,version
无法直接查看fsimage文件,需先执行以下命令生成相应的xml文件才可查看
hdfs oiv      -p XML          -i fsimage_0000000000000000098 -o fsimage98.xml
    固定参数 最终生成xml文件  输入文件                       输出文件
<inode>标签(对应一个文件的信息):<type>存储的数据类型 <name>名字,如README.txt <replication>副本数量  <atime> 访问时间 <mtime> 修改时间
<permission>权限
<blocks><block><id>(block的ID)<numbytes>(数据块的大小)</block><blocks> 有多少个数据块,就有多少个block标签

edits:实时记录文件的上传状态,特别是对于大文件,只有当该文件所有数据块都上传成功时,edits中才会记录该文件上传成功;
hdfs dfs ls / 实际上就是访问fsimage(固化的内容,镜像,定时生成) 和 edits(当前正在上传的文件信息,实时动态更新) 这两个文件

edits中的内容隔段时间会(由secondaryNamenode【主要负责】执行此操作,在hadoop2.0以后的HA架构,
没有secondarynamenode进程,存在多个namenode,会由standby namenode负责实现合并操作(称为checkpoint)
相当于一个主namenode,其他是备份namenode,此操作将由备份namenode来完成)转换一下,然后生成新的内容保存在fsimage文件
seed_txid 存放的是edits中最后的文件的序号 当文件系统重新格式化的时候会读取seed_txid中的序号,并逐个执行edits从开始到这个序号的所有文件
version 集群的版本信息