私はMapReduceプログラムに取り組んできました。私はロードブロッキングを打ち、助けが必要でした。私は3つのジョブを実行するプログラムを持っています(ジョブ#2はforループ内で5回実行されます)。そして、私のマッパーとレデューサーのいくつかが適切に定義されていないようです。コンパイルすると、「メソッドはスーパータイプからメソッドをオーバーライドまたは実装しません」というエラーが発生し続ける。Hadoop - マッパーとレデューサーのオーバーライドエラー
ここに私のプログラムの基本的な構造です:
Job 1:
FirstMapper
んリデューサー
がJob 2:
セカンドマッパー
まずリデューサー
Job 3:
最終減速
そして、ここでは、私は私のマッパーと減速が定義されている方法は次のとおりです。それは発生しないよう
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はOKと表示されますなぜなら、メソッドのシグネチャが正しいように見えるからです。私は当初、それが私のカスタムVertexクラスのためだと思っていましたが、書き込み可能なを実装しています。なぜこれが問題の原因になるのか分かりません。すべての助けが大いに感謝されるでしょう。ありがとう
おかげで、問題を見つけるためにもう一組の目が必要でした。これで修正されました。 – xPeaWhyTee