HDFS存储数据的位置

Cur*_*ind 19 configuration hadoop hdfs

我试图了解hadoop在HDFS中存储数据的位置.我指的是配置文件即:core-site.xmlhdfs-site.xml

我设置的属性是:

通过上述安排,dfs.datanode.data.dir数据块应该存储在该目录中.它是否正确?

我提到了apache hadoop链接,从中我看到了这个:

  • core-default.xml: hadoop.tmp.dir- >其他临时目录的基础.

  • hdfs-default.xml dfs.datanode.data.dir - >确定DFS数据节点应在何处存储其块的本地文件系统.

    此属性的默认值为 - > file://${hadoop.tmp.dir}/dfs/data

由于我明确提供了dfs.datanode.data.dir(hdfs-site.xml)的值,它是否意味着数据将存储在该位置?如果是这样,将dfs/data添加到目录中${dfs.datanode.data.dir},特别是它会变成 - > /hadoop/hdfs/datanode/dfs/data

但是我没有看到这个目录结构被创建.

我在环境中看到的一个观察结果:

我看到在运行一些MapReduce程序之后,创建了这个目录,即: /hadoop/tmp/dfs/data正在创建.

因此,不确定数据是否存储在属性dfs.datanode.data.dir所建议的目录中.

有没有人有类似的经历?

Ric*_*ckH 14

hdfs文件的数据将存储在指定的目录中dfs.datanode.data.dir,并且/dfs/data不会附加在默认值中看到的后缀.

如果编辑hdfs-site.xml,则必须重新启动DataNode服务才能使更改生效.还要记住,更改该值将消除DataNode服务提供存储在先前位置的块的能力.

最后,上面指定了您的值,file:/...而不是file://....文件URI确实需要额外的斜杠,因此可能导致这些值恢复为默认值.

  • 我相信我们必须使用file:///而不是file://. (2认同)