什么应该hadoop.tmp.dir?

时间:2010-03-01 08:15:11

标签: hadoop hdfs config

Hadoop有配置参数hadoop.tmp.dir,根据文档,它是`“其他临时目录的基础。”我认为,这条路径指的是本地文件系统。

我将此值设置为/mnt/hadoop-tmp/hadoop-${user.name}。格式化namenode并启动所有服务后,我看到在HDFS上创建的路径完全相同。

这是否意味着,hadoop.tmp.dir是指 HDFS上的临时位置

3 个答案:

答案 0 :(得分:31)

令人困惑,但hadoop.tmp.dir用作本地临时目录的基础,也用于 HDFS 。该文档不是很好,但mapred.system.dir默认设置为"${hadoop.tmp.dir}/mapred/system",这定义了 HDFS 上的路径,其中Map / Reduce框架存储系统文件。

如果您希望不将它们捆绑在一起,则可以编辑mapred-site.xml,以便mapred.system.dir的定义与${hadoop.tmp.dir}

无关。

答案 1 :(得分:25)

让我再补充一下kkrugler的答案:

有三个HDFS属性,其值

中包含hadoop.tmp.dir
  1. dfs.name.dir:namenode存储其元数据的目录,默认值为${hadoop.tmp.dir}/dfs/name
  2. dfs.data.dir:存储HDFS数据块的目录,默认值为${hadoop.tmp.dir}/dfs/data
  3. fs.checkpoint.dir:辅助名称节点存储其检查点的目录,默认值为${hadoop.tmp.dir}/dfs/namesecondary
  4. 这就是格式化namenode后在HDFS中看到/mnt/hadoop-tmp/hadoop-${user.name}的原因。

答案 2 :(得分:3)

仔细查看有关此信息的信息。我唯一想到的就是Amazon Elastic MapReduce Dev Guide上的这篇文章:

  

在hadoop-site.xml中,我们设置了   hadoop.tmp.dir to   到/ mnt在/ var / lib中/ Hadoop的/ tmp目录。 / mnt在哪里   我们安装“额外”的EC2卷,   它可以包含更多的数据   默认音量。 (确切的数额   取决于实例类型。)Hadoop   RunJar.java(解压缩的模块   输入JARs)解释   hadoop.tmp.dir作为Hadoop文件系统   路径而不是本地路径,所以它   写入HDFS中的路径而不是   本地路径。 HDFS安装在   / mnt(具体而言   到/ mnt在/ var / lib中/的Hadoop / DFS /。所以你可以   写了很多数据。