gpt4 book ai didi

java - Hadoop - 映射器和缩减器的@Override 错误

转载 作者:可可西里 更新时间:2023-11-01 14:23:17 26 4
gpt4 key购买 nike

我一直在研究 MapReduce 程序,但遇到了障碍,需要一些帮助。我有一个运行 3 个作业的程序(作业 #2 在一个 for 循环中运行了 5 次),似乎我的一些映射器和缩减器没有正确定义。编译时,我不断收到“方法未覆盖或实现父类(super class)型的方法”错误。

这是我的程序的基本结构:

作业 1:

第一个映射器
无 reducer

作业 2:

第二个映射器
第一个 reducer

作业 3:

最终映射器
最终 reducer

下面是我定义映射器和缩减器的方式:

public static class FirstMapper extends Mapper<Object, Text, LongWritable, Vertex>  {
@Override
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {}


public static class SecondMapper extends Mapper<LongWritable, Vertex, LongWritable, Vertex> {
@Override
public void map(long key, Vertex value, Context context) throws IOException, InterruptedException {}


public static class FirstReducer extends Reducer<LongWritable, Vertex, LongWritable, Vertex> {
@Override
public void reduce(Long key, Iterable<Vertex> values, Context context) throws IOException, InterruptedException {}


public static class FinalMapper extends Mapper<LongWritable, Vertex, LongWritable, LongWritable> {
@Override
public void map(Long key, Vertex value, Context context) throws IOException, InterruptedException {}


public static class FinalReducer extends Reducer<LongWritable, LongWritable, LongWritable, LongWritable> {
@Override
public void reduce(Long key, Iterable<LongWritable> values, Context context) throws IOException, InterruptedException {}

FirstMapper 似乎没问题,因为它不会导致错误,但其他 4 个会导致错误,我不明白为什么,因为方法签名看起来是正确的。我最初认为可能是因为我的自定义 Vertex 类,但它实现了 Writable 所以我不确定为什么这会导致问题。任何和所有帮助将不胜感激。谢谢

最佳答案

您的 key 需要实现 WritableComparable接口(interface)并匹配您在类中指定的类型 MapperReducer签名。例如在第二个你有:

Mapper<LongWritable, Vertex, LongWritable, Vertex>

但随后在 map你使用的方法 long .这需要匹配您在签名中指定的类型,即 LongWritable .所以第二张 map 的参数需要看起来像:

map(LongWritable key, Vertex value, Context context)

最后四个类都有这个问题。

关于java - Hadoop - 映射器和缩减器的@Override 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39951037/

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