【问题标题】:How to submit a job with a directory of configure files in hadoop mapreduce?如何在hadoop mapreduce中提交带有配置文件目录的作业?
【发布时间】:2011-12-07 14:32:52
【问题描述】:

我有一个问题:我想提交一个包含配置文件目录的作业,并且该目录不在 hadoop dfs 中,hadoop 是否有一些选项可以做到这一点?我想像提交作业的jar文件一样提交目录,以便hadoop可以将作业和配置目录分发到所有datanode。我发现当我使用这个命令时-files选项似乎不起作用: bin/hadoop jar job.jar input output -files conf_dir。似乎 -files 选项仅适用于 hadoop 流

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    我想提交一个包含配置文件目录的作业,并且该目录不在 hadoop dfs 中,hadoop 是否有一些选项可以做到这一点?

    使用--config 选项指定配置文件的目录。

    我想像提交作业的jar文件一样提交目录,以便hadoop可以将作业和配置目录分发到所有datanode。

    在提交作业之前,配置文件应该存在于所有节点中,以便守护程序启动,因此在提交作业时分发它们是没有意义的。要发送任何其他参数,请使用-D option。如果 sidedata 很大,则使用DistributedCache 分发数据并在 mapper 和 reducer 中读取。

    我发现使用这个命令时-files选项好像不起作用: bin/hadoop jar job.jar input output -files conf_dir.似乎 -files 选项仅适用于 hadoop 流。

    -files 选项采用逗号分隔的 any 文件列表(不是目录),并将文件分发到所有节点。框架不会读取这些文件,map 和 reduce 任务中的代码必须显式读取这些文件。

    另外,根据Hadoop - The Definitive Guide

    请注意,某些属性在客户端配置中设置时无效。为了 例如,如果在您的作业提交中,您将 mapred.tasktracker.map.tasks.maximum 设置为 期望它会改变 tasktrackers 运行的任务槽数 - 宁愿你的工作,那么你会感到失望,因为只有这个属性才值得尊敬 如果在 tasktracker 的 mapred-site.html 文件中设置。一般来说,你可以告诉组件 其中一个属性应该由它的名字来设置,所以事实上 mapred.task tracker.map.tasks.maximum 以 mapred.tasktracker 开头给你一个线索,它可以 仅为 tasktracker 守护进程设置。然而,这并不是一个硬性规定,所以在 在某些情况下,您可能需要反复试验,甚至阅读源代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多