Hadoop有配置参数hadoop.tmp.dir
,根据文档,它是" 其他临时目录的基础".我认为,这条路径指的是本地文件系统.
我将此值设置为/mnt/hadoop-tmp/hadoop-${user.name}
.格式化namenode并启动所有服务后,我看到在HDFS上创建的路径完全相同.
这是否意味着, hadoop.tmp.dir
是指HDFS上的临时位置?
它令人困惑,但hadoop.tmp.dir
在本地和HDFS中用作临时目录的基础.该文档并不好,但mapred.system.dir
默认设置为"${hadoop.tmp.dir}/mapred/system"
,这定义了HDFS上的路径,Map/Reduce框架存储系统文件.
如果你希望这些不被绑在一起,你可以编辑你mapred-site.xml
的mapred.system.dir的定义是没有绑定的东西${hadoop.tmp.dir}
让我再补充一下kkrugler的答案:
hadoop.tmp.dir
它们的值中包含三个HDFS属性
dfs.name.dir
:namenode存储其元数据的目录,具有默认值${hadoop.tmp.dir}/dfs/name
.
dfs.data.dir
:存储HDFS数据块的目录,具有默认值${hadoop.tmp.dir}/dfs/data
.
fs.checkpoint.dir
:辅助namenode存储其检查点的目录,默认值为${hadoop.tmp.dir}/dfs/namesecondary
.
这就是您/mnt/hadoop-tmp/hadoop-${user.name}
在格式化namenode后在HDFS中看到的原因.