HDFS文件目录结构详解

本文详细介绍了HDFS的Namenode和Datanode的文件目录结构,包括Namenode中的fsimage和editlog文件,Datanode中的数据块blk文件。分析了VERSION、edits_*, fsimage_*, in_use.lock等文件的功能和作用,揭示了HDFS存储的内部机制。" 105585313,8248763,深入理解单例模式:优缺点、应用场景及Python与Java实现,"['设计模式', 'Python编程', 'Java编程', '并发处理', '软件设计']
摘要由CSDN通过智能技术生成

Namenode中主要存储fsimage和editlog文件,Datanode中主要存储数据块blk文件。下面分别介绍Namenode和Datanode中的文件存储结构。

1 Namenode

1.1 文件所在位置

文件所在位置由hdfs-site.xml中的配置项dfs.namenode.name.dir配置。这些文件都存于${dfs.namenode.name.dir}/current文件夹下,在dfs.namenode.name.dir配置项中可以配置多个目录,各个目录存储的文件结构和内容都完全一样,配置多个目录只是起到冗余备份的作用。

<property>
  <name>dfs.namenode.name.dir</name>
  <value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>

dfs.namenode.name.dir在hdfs-site.xml中定义的默认值为file://${hadoop.tmp.dir}/dfs/name,其中hadoop.tmp.dir是core-site.xml中的配置项,hadoop.tmp.dir的默认值为/tmp/hadoop-${user.name}。因此文件默认都是存放在/tmp/hadoop-${user.name}/dfs/name/current路径下的。

<property>
  <name>hadoop.tmp.dir</name>
  <value>/tmp/hadoop-${user.name}</value>
  <description>A base for other temporary directories.</description>
</property>

具体到我的服务器,dfs.namenode.name.dir用了配置的/cloud/data/hadoop/dfs/nn,因此我的服务器上的文件的路径就直接为:/cloud/data/hadoop/dfs/nn/current。

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/cloud/data/hadoop/dfs/nn/</value>
</property>

1.2 文件目录结构

nn文件夹下的内容有(之所以从nn文件夹而不是current文件夹下开始是因为要讲解和current同级的in_user.lock文件):

nn
├── current
│ ├── edits_0000000001362702459-0000000001363401818
│ ├── edits_0000000001363401819-0000000001363931603
│ ├── edits_0000000001363931604-0000000001364566627
│ ├── edits_0000000001364566628-0000000001365069009
│ ├── edits_0000000001365069010-0000000001365209404
│ ├── edits_0000000001365209405-0000000001365211445
│ ├── edits_0000000001365211446-0000000001365211447
│ ├── edits_0000000001365211448-0000000001365211451
│ ├── edits_0000000001365211452-0000000001365211453
│ ├── edits_0000000001365211454-0000000001365211625
│ ├── edits_0000000001365211626-0000000001365213635
│ ├── edits_inprogress_0000000001365213636
│ ├── fsimage_0000000001365431029
│ ├── fsimage_0000000001365431029.md5
│ ├── fsimage_0000000001365431090
│ ├── fsimage_0000000001365431090.md5
│ ├── seen_txid
│ └── VERSION
└── in_use.lock

1.3 文件目录解析

从上面的目录树中可以发现,主要有6类文件:

1.3.1 VERSION文件

VERSION是java属性文件,内容大致如下:

namespaceID=644097999
clusterID=CID-da027b7b-4e9f-4287-be7a-03735d895bc2
cTi
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值