为什么HDFS默认将数据存储在/ tmp中?

时间:2017-08-27 02:01:06

标签: hadoop hdfs

在HDFS中:

  • NameNode将块的位置存储在文件夹dfs.namenode.name.dir
  • DataNode将实际数据块存储在文件夹dfs.datanode.data.dir

这两个属性共同构成了HDFS最重要的部分:保存数据的位置。

默认情况下:

  • dfs.namenode.name.dirdfs.datanode.data.dirfile://${hadoop.tmp.dir}内的子目录(参见hdfs-default.xml
  • ${hadoop.tmp.dir}/tmp/hadoop-${user.name}(请参阅core-default.xml

简而言之,HDFS默认将您的数据存储在/tmp

现代Linux发行版中的

/tmp is emptied often

为什么HDFS默认将数据存储在/tmp?为什么有人希望他们的数据是暂时的?

1 个答案:

答案 0 :(得分:2)

由于Hadoop不对您的文件结构做任何假设,因此希望能够直接安装,并指导用户在正确配置后覆盖这些属性。

大多数Linux发行版都有/ tmp,并且所有用户都可以公开写入。不确定/ etc,/ var或/ mnt符合该标准

显然没有人希望数据是临时的,但默认情况也不是生产就绪。例如,fs.defaultFS默认只是本地文件系统,并且只有1个文件副本