0

Hadoop で複数の Map/Reduce タスクを実行しようとしています。Google で検索した後、 http ://cloudcelebrity.wordpress.com/2012/03/30/how-to-chain-multiple-mapreduce-jobs-in-hadoop/で説明されている方法 2 を使用しました: JobControl を使用します。次のエラーが発生しました。

/examples2/format/Dictionary.java:100: error: no suitable method found for addJob(org.apache.hadoop.mapreduce.Job)
jbcntrl.addJob(job);
       ^
method JobControl.addJob(org.apache.hadoop.mapred.jobcontrol.Job) is not applicable
      (actual argument org.apache.hadoop.mapreduce.Job cannot be converted to org.apache.hadoop.mapred.jobcontrol.Job by method invocation conversion)

Is it better to use the mapred or the mapreduce package to create a Hadoop Job? で説明されているように、、ここではずれているように見える 2 つの異なる API があります。さらに調べてみると、JobControl と JofConf.setMapperClass() errorが見つかりました。mapreduce パッケージを使えorg.apache.hadoop.mapreduce.lib.jobcontrol.JobControl' instead of 'org.apache.hadoop.mapred.jobcontrol.JobControl ば解決するとのことです。唯一の問題は次のとおりです。私はこれを使用しています。この特定のファイル (hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/jobcontrol/JobControl.ソースコードの Java)、私はそれが使用していることがわかります

import org.apache.hadoop.mapred.jobcontrol.Job;

それ以外の

import org.apache.hadoop.mapreduce.Job;

エラーの原因と思われるものはどれですか(正しいですか?)。コードを mapred に戻す以外に、これを回避する方法はありますか? または、複数の M/R ジョブを実行する他の方法はありますか?

更新: http://cloudcelebrity.wordpress.com/2012/03/30/how-to-chain-multiple-mapreduce-jobs-in-hadoop/から方法 1 を取得しましたが、まだ答えに興味があります問題のために。

4

3 に答える 3