2012-03-18 4 views
2

これは私のジョブランナーがどのように見えるかです。このジョブ自体をトリガーしているときに、どうすれば低い優先順位を設定できますか?ハングアウトジョブの優先度をJavaコードで設定するにはどうすればいいですか?

public int run(String[] args) throws Exception { 
    this.initJob(); 
    Path outputPath = new Path(args[2]); 
    FileInputFormat.setInputPaths(job, args[0]); 
    FileOutputFormat.setOutputPath(job, outputPath); 

    job.getConfiguration().set("FREQUENCY", args[3]); 
    job.getConfiguration().set("TIMEZONE", args[4]); 

    boolean rc = job.waitForCompletion(true); 
    if (rc) { 
     return 0; 
    } 
    return 1; 
} 
public void initJob() throws IOException { 
    job = new Job(getConf(), "Stats Data Cruncher"); 
    job.setMapOutputKeyClass(Text.class);  
    job.setMapOutputValueClass(Text.class); 
    job.setOutputKeyClass(Text.class); 
    job.setOutputValueClass(NullWritable.class); 
    Job.setInputFormatClass(LzoTextInputFormat.class); 

    job.setJarByClass(JobRunner.class); 
    job.setMapperClass(StatsMapper.class); 
    job.setCombinerClass(StatsCombiner.class);   
    job.setReducerClass(StatsReducer.class); 
} 

この行はLOWプライオリティを設定するのに有効ですか?

job.getConfiguration().set("PRIORITY", "LOW"); 

答えて

3

"mapred.job.priority"は、あなたが探しているプロパティです。

あなたはこのようなあなたの設定でこれを設定することができます:あなたはあなたの仕事の優先順位を設定するために使用することができます

Configuration conf = new Configuration(); 
// set the priority to VERY_HIGH 
conf.set("mapred.job.priority", JobPriority.VERY_HIGH.toString()); 
+0

この優先度がどこで読み込まれ、どのようにスケジューラに渡されるか、 –

5

三つの方法:XML設定ファイル内

  1. 設定ユーザーのジョブの優先度。
  2. 怒鳴るようHadoopのコマンドを使用して、あなたの仕事を設定します。

    Hadoopのジョブ-set-優先Javaコードで

  3. 、あなたが設定でジョブの優先順位を設定することができます。

    conf.set(「mapred .job.priority "、JOBPRIORITY.toString());

JOBPRIORITYの値であってもよい。

JobPriority.VERY_HIGH

JobPriority.HIGH

JobPriority.NORMAL

JobPriority.LOW

JobPriority.VERY_LOW

関連する問題