HDFS默认在哪里存储文件?

Posted

技术标签:

【中文标题】HDFS默认在哪里存储文件?【英文标题】:Where HDFS stores files locally by default? 【发布时间】:2010-03-01 19:19:11 【问题描述】:

我正在使用具有单节点集群的默认配置运行 hadoop,并且想查找 HDFS 在本地存储文件的位置。

有什么想法吗?

谢谢。

【问题讨论】:

【参考方案1】:

您需要在您的 hdfs-default.xml 配置文件中查看 dfs.data.dir 设置。默认设置为:$hadoop.tmp.dir/dfs/data 并注意 $hadoop.tmp.dir 实际上是在 core-default.xml 中描述的here。

配置选项在here 中描述。此设置的说明是:

确定本地的位置 文件系统 DFS 数据节点应该 存储它的块。如果这是一个 逗号分隔的目录列表, 然后数据将存储在所有命名的 目录,通常在不同的 设备。不存在的目录 被忽略。

【讨论】:

此链接已损坏 :( hadoop.tmp.dir 的默认值是多少? 从上面的 core-default.xml 链接,它显示 hadoop.tmpdir = /tmp/hadoop-$user.name【参考方案2】:

似乎当前版本(2.7.1)的目录是

/tmp/hadoop-$user.name/dfs/data

基于dfs.datanode.data.dirhadoop.tmp.dir 设置来自: http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/core-default.xml

【讨论】:

【参考方案3】:

作为“更新的答案”并澄清 hadoop 版本号:

如果您使用 Hadoop 1.2.1(或类似的东西),@Binary Nerd 的回答仍然正确。

但如果你使用Hadoop 2.1.0-beta(或类似的东西),你应该阅读配置文档here,你要设置的选项是:dfs.datanode.data.dir

【讨论】:

【参考方案4】:

对于 hadoop 3.0.0,hdfs 根路径由属性"dfs.datanode.data.dir" 给出

【讨论】:

【参考方案5】:

cmd 提示符下运行,您将获得 HDFS 位置:

bin/hadoop fs -ls /

【讨论】:

如前所述,这个命令只是给出一个错误。而且您修复了该命令,它根本不会回答原始问题,-ls 在这方面没有帮助。

以上是关于HDFS默认在哪里存储文件?的主要内容,如果未能解决你的问题,请参考以下文章

Hive在哪里存储HDFS中的文件?

hdfs 相关概念

HDFS进阶——文件存储和读写流程

hadoop namenode

HDFS块的存储策略

HDFS详解