gpt4 book ai didi

java - MapReduce 多个归约任务

转载 作者:行者123 更新时间:2023-12-02 22:01:05 27 4
gpt4 key购买 nike

我必须获取 Mapper 的输出并将其传递给我的 Reducer 4 次。

Reducer 是数据之间的合并。所以在 Mapper 之后,Reducer 在第一次迭代时合并一些数据,更改键和重新合并以及第二次迭代,等等......

我尝试使用 job.setNumReduceTasks(4)但什么也没发生。我只有 1 个输出和一个简单的 System.out.println()放置在我的 Reducer 中仅显示 1 条消息。

Job job = new Job(getConf());


job.setJarByClass(Driver.class);
job.setJobName(this.getClass().getName());

FileInputFormat.setInputPaths(job, new Path(input));
FileOutputFormat.setOutputPath(job, new Path(output+System.nanoTime()));

job.setMapperClass(KMMapper.class);

job.setReducerClass(KMReducer.class);
job.setNumReduceTasks(4);

job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(Text.class);

job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);

job.waitForCompletion(true);

- - - - - 编辑 - - - - -

Also, please update your question with possible i/p adn o/p



我必须实现一种新的数据聚类方式。

映射器是聚类算法,输出是聚类中点的键/列表。

每个 Reducer 将集群与相同的键进行比较,如果它们“相似”,则 reducer 将其合并。 reducer 选择新键,输出是新键/点列表。通过随机选择新 key 和大量迭代,将比较所有初始集群。

最佳答案

I have to take the output of my Mapper and pass it 4 times to my Reducer.



从上面的陈述中,我可以理解您的数据必须按顺序过滤/处理 4 次。做os,MapReduce提供了 ChainMapperChainReducer .

使用 job.setNumReduceTasks(4);仅有助于并行运行 4-reducer 任务,基于默认的 key-partition 机制共享映射器输出(称为中间数据)。

从您问题的另一部分来看,可以引入自定义分区。因此,它们将键值对排列为值的键列表。然后,根据需要的过滤机制,在reducer中合并结果。

关于java - MapReduce 多个归约任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42224273/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com