【问题标题】:Set reducers to default but finally I have two files将减速器设置为默认值,但最后我有两个文件
【发布时间】:2015-10-09 09:35:09
【问题描述】:

我正在运行一个 map reduce 作业,其中 reducer 的数量设置为默认值(一个 reducer)。理论上,每个reducer的输出必须是一个文件,但是当我运行我的工作时,我有两个文件

part-r-00000

part-r-00001

为什么会这样?

我的集群中只有一个节点。

我的驱动类:

公共类 DriverDate 扩展配置实现工具 { @覆盖 public int run(String[] args) 抛出异常 { if (args.length != 2) { System.out.printf("用法:AvgWordLength inputDir outputDir\n"); System.exit(-1); } 工作工作=新工作(getConf()); job.setJobName("工作转换日期"); job.setJarByClass(DriverDate.class); job.setMapperClass(MapDate.class); job.setReducerClass(ReduceDate.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(NullWritable.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(NullWritable.class); FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); 作业.waitForCompletion(true); 返回0; } 公共静态 void main(String[] args) 抛出异常 { 配置 conf = new Configuration(); ToolRunner.run(conf,new DriverDate(), args); } }

【问题讨论】:

  • 你能把你的main方法(或Driver类),以及你运行程序的命令贴出来吗?
  • 没有其他额外配置,我确定我运行的 jar 是正确的。
  • 那么,我没有答案……等着别人……抱歉,祝你好运!
  • 映射后数据的大小(中间数据)是多少?如果手动设置reduce为1,reduce阶段有重试吗?
  • Abdulrahman,我找到了答案,你是对的,将减速器的数量明确设置为一个是解决问题的一种方法

标签: hadoop mapreduce


【解决方案1】:

你说得对,这段代码应该生成一个输出文件,因为默认的reduce任务数是1,每个reducer生成一个输出文件。

但是,可能出错的地方包括(但不限于):

  • 确保运行正确的 jar 并确保在生成正确的 jar 时更新它。确保将正确的 jar 从生成它的计算机复制到(单节点)集群的主节点。例如,在您的说明中,您说 Usage: AvgWordLength inputDir outputDir, 但这个 jar 的名称不太可能是 AvgWordLength...

  • 确保您没有从命令行指定不同数量的 reducer(例如,通过使用 -D 属性)。

除此之外,我找不到任何其他可能的原因......

集群中的节点数无关。

【讨论】:

    【解决方案2】:

    好的,我找到了答案。

    在 cloudera Manager 中,Yarn (MR2) 中的配置选项有每个 Job 的 reducers 任务的默认值,在一个节点集群中设置为 2,因此默认 reducer 的数量是两个。

    为了解决这个问题,有两个选项,通过java将reducer的数量明确设置为一个:

    job.setNumReduceTasks(1);

    ,或者在 Cloudera Manager 的 Yarn Configuration 中更改默认 reducer 的值

    【讨论】:

      猜你喜欢
      • 2013-11-11
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2020-03-08
      • 2021-05-08
      相关资源
      最近更新 更多