【问题标题】:What should be hadoop.tmp.dir ?hadoop.tmp.dir 应该是什么?
【发布时间】:2010-03-01 08:15:11
【问题描述】:

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

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

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

【问题讨论】:

  • 这绝对是为了指定一个本地文件系统路径,不知道为什么它对你不起作用。

标签: hadoop hdfs config


【解决方案1】:

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

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

【讨论】:

  • 对于 Hadoop 1.2.1,hadoop.tmp.dir 的默认路径是什么?
  • @ChenZhongPu 在 core-site.xml 中提到
【解决方案2】:

让我在 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:二级namenode存储检查点的目录,默认值为${hadoop.tmp.dir}/dfs/namesecondary

这就是为什么您在格式化 namenode 后在 HDFS 中看到 /mnt/hadoop-tmp/hadoop-${user.name}

【讨论】:

    【解决方案3】:

    四处寻找有关此的信息。我唯一能想到的就是Amazon Elastic MapReduce Dev Guide上的这个帖子:

    在 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/.这样你就可以 向它写入大量数据。

    【讨论】:

      猜你喜欢
      • 2019-06-07
      • 2012-09-26
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 2012-07-02
      • 2017-08-23
      相关资源
      最近更新 更多