当前位置:  开发笔记 > 运维 > 正文

HDFS存储数据的位置

如何解决《HDFS存储数据的位置》经验,为你挑选了1个好方法。

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

我设置的属性是:

core-site.xml:


    hadoop.tmp.dir
    /hadoop/tmp

hdfs-site.xml:


    dfs.namenode.name.dir
    file:/hadoop/hdfs/namenode



    dfs.datanode.data.dir
    file:/hadoop/hdfs/datanode

通过上述安排,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所建议的目录中.

有没有人有类似的经历?



1> RickH..:

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

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

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


我相信我们必须使用file:///而不是file://.
推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有