在 Linux 上 HDFS 的数据实际存在本地磁盘的哪个目录,主要由 HDFS 配置文件决定,而不是固定在一个地方。
HDFS 的数据(DataNode 存储的块)一般存放在:
${dfs.datanode.data.dir}
这个路径是在 hdfs-site.xml 中配置的。
常见位置:
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
或:
/etc/hadoop/conf/hdfs-site.xml
grep dfs.datanode.data.dir hdfs-site.xml
示例配置:
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hdfs/datanode</value>
</property>
✅ 那么 HDFS 数据就存在:
/data/hdfs/datanode
以 /data/hdfs/datanode 为例:
/data/hdfs/datanode/
└── current/
└── BP-xxxxxxxxx-<namenode>-<timestamp>/
└── current/
├── finalized/
│ └── blk_<id>
│ ├── blk_<id>
│ └── blk_<id>_meta
└── rbw/
blk_*:HDFS 文件块(真实数据)blk_*_meta:块元数据⚠️ 不要手动修改这些目录
NameNode 元数据目录由:
dfs.namenode.name.dir
决定,例如:
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hdfs/namenode</value>
</property>
包含:
hdfs getconf -confKey dfs.datanode.data.dir
hdfs getconf -confKey dfs.namenode.name.dir
| 组件 | 默认路径(可能) |
|---|---|
| DataNode | /tmp/hadoop-*/dfs/data |
| NameNode | /tmp/hadoop-*/dfs/name |
⚠️ 默认在 /tmp 下,重启可能丢失,生产环境一定改
HDFS 在 Linux 上存哪里,取决于
hdfs-site.xml里的dfs.datanode.data.dir和dfs.namenode.name.dir
如果你愿意,可以把你的 hdfs-site.xml 贴出来,我可以帮你精确指出数据在哪块磁盘上。