题
Hadoop有配置参数 hadoop.tmp.dir
根据文档,这是`“其他临时目录的基础。” 我想,这个路径是指本地文件系统。
我将此值设置为 /mnt/hadoop-tmp/hadoop-${user.name}
. 。格式化名称节点并启动所有服务后,我看到在 HDFS 上创建了完全相同的路径。
意思是不是, hadoop.tmp.dir
指临时位置 分布式文件系统?
解决方案
它的混乱,但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 的答案补充一点:
HDFS 共有三个属性,其中包含 hadoop.tmp.dir
在他们的价值观中
dfs.name.dir
:namenode存储元数据的目录,默认值${hadoop.tmp.dir}/dfs/name
.dfs.data.dir
:HDFS数据块存储目录,默认值${hadoop.tmp.dir}/dfs/data
.fs.checkpoint.dir
:secondary namenode存储其检查点的目录,默认值为${hadoop.tmp.dir}/dfs/namesecondary
.
这就是为什么你看到了 /mnt/hadoop-tmp/hadoop-${user.name}
格式化 namenode 后在 HDFS 中。
已经为在这一个信息环顾四周。只有我能想出的事情是这个职位上的亚马逊弹性MapReduce的开发指南:
在的hadoop-site.xml中,我们设置 hadoop.tmp.dir到 到/ mnt在/ var / lib中/ Hadoop的/ tmp目录。到/ mnt是其中 我们安装的“额外”的EC2卷, 它可以包含很多比更多的数据 默认的音量。 (确切的量 取决于实例类型。)Hadoop的 RunJar.java(模块解包 输入的JAR)解释 hadoop.tmp.dir作为一个Hadoop文件系统 路径而非本地路径,因此它 写入路径HDFS代替 本地路径。 HDFS安装下 到/ mnt(具体 到/ mnt在/ var / lib中/的Hadoop / DFS /。这样你就可以 写入大量数据给它。