2016-05-03 7 views
-1

誰かがhadoopの場合の設定の使い方を教えてもらえますか?Hadoopのジョブ設定

そしてまた私に次のコードを説明します。

// Create a new JobConf 
JobConf job = new JobConf(new Configuration(), MyJob.class); 

// Specify various job-specific parameters  
job.setJobName("myjob"); 

FileInputFormat.setInputPaths(job, new Path("in")); 
FileOutputFormat.setOutputPath(job, new Path("out")); 

job.setMapperClass(MyJob.MyMapper.class); 
job.setCombinerClass(MyJob.MyReducer.class); 
job.setReducerClass(MyJob.MyReducer.class); 

job.setInputFormat(SequenceFileInputFormat.class); 
job.setOutputFormat(SequenceFileOutputFormat.class); 
+0

実際は、マッパーとリデューサーの処理内容によって異なります。 –

+0

はい、それは本当ですが、ハイエンドではどのような構成が本当に意味するかを知りたがっています – Srinivas

答えて

2

のHadoopの場合の構成の使用は何を?

あなたが正しく尋ねていることを理解していれば、MapReduceジョブの実行時に何をすべきかをジョブが設定できるようになります。

入力&の出力データ型と場所、およびマッパーとレデューサーであるクラスを指定する必要があります。

ここでは、たとえば、"in"ディレクトリの内容を取り出して"out"ディレクトリに書き出しています。通常、これらはコマンドラインからnew Path(args[0])new Path(args[1])を介して取得されます。

FileInputFormat.setInputPaths(job, new Path("in")); 
FileOutputFormat.setOutputPath(job, new Path("out")); 

ここでは、MapReduceJobここ

job.setMapperClass(MyJob.MyMapper.class); 
job.setCombinerClass(MyJob.MyReducer.class); 
job.setReducerClass(MyJob.MyReducer.class); 

のためのそれぞれのクラスを設定しますが、入力と出力の形式を指定します。これらは、それぞれマッパーとレデューサーの入力と出力に対応していなければなりません。

job.setInputFormat(SequenceFileInputFormat.class); 
job.setOutputFormat(SequenceFileOutputFormat.class); 

ジョブは、人間が判読できる名前で設定して、ResourceManagerで追跡できるようにすることもできます。

job.setJobName("myjob"); 
+0

ありがとう!!しかし、次のようにpathを定義します。Path p1 = Paths.get( "in");それから私はそこに道を見ない。私が勉強したことは、パスのパスクラスを使ってメソッドを使うことです。 – Srinivas

+0

あなたはそれをどのように定義するかは問題ではありません。通常、同じディレクトリに読み書きしていない限り。コマンドラインでパラメータを使用すると、任意のデータセットで同じジョブを実行できます。 –

関連する問題