JobProfile.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:5k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.mapred;
  19. import java.io.DataInput;
  20. import java.io.DataOutput;
  21. import java.io.IOException;
  22. import java.net.URL;
  23. import org.apache.hadoop.io.Text;
  24. import org.apache.hadoop.io.Writable;
  25. import org.apache.hadoop.io.WritableFactories;
  26. import org.apache.hadoop.io.WritableFactory;
  27. /**************************************************
  28.  * A JobProfile is a MapReduce primitive.  Tracks a job,
  29.  * whether living or dead.
  30.  *
  31.  **************************************************/
  32. public class JobProfile implements Writable {
  33.   static {                                      // register a ctor
  34.     WritableFactories.setFactory
  35.       (JobProfile.class,
  36.        new WritableFactory() {
  37.          public Writable newInstance() { return new JobProfile(); }
  38.        });
  39.   }
  40.   String user;
  41.   final JobID jobid;
  42.   String jobFile;
  43.   String url;
  44.   String name;
  45.   String queueName;
  46.   
  47.   /**
  48.    * Construct an empty {@link JobProfile}.
  49.    */
  50.   public JobProfile() {
  51.     jobid = new JobID();
  52.   }
  53.   /**
  54.    * Construct a {@link JobProfile} the userid, jobid, 
  55.    * job config-file, job-details url and job name. 
  56.    * 
  57.    * @param user userid of the person who submitted the job.
  58.    * @param jobid id of the job.
  59.    * @param jobFile job configuration file. 
  60.    * @param url link to the web-ui for details of the job.
  61.    * @param name user-specified job name.
  62.    */
  63.   public JobProfile(String user, org.apache.hadoop.mapreduce.JobID jobid, 
  64.                     String jobFile, String url,
  65.                     String name) {
  66.     this(user, jobid, jobFile, url, name, JobConf.DEFAULT_QUEUE_NAME);
  67.   }
  68.   /**
  69.    * Construct a {@link JobProfile} the userid, jobid, 
  70.    * job config-file, job-details url and job name. 
  71.    * 
  72.    * @param user userid of the person who submitted the job.
  73.    * @param jobid id of the job.
  74.    * @param jobFile job configuration file. 
  75.    * @param url link to the web-ui for details of the job.
  76.    * @param name user-specified job name.
  77.    * @param queueName name of the queue to which the job is submitted
  78.    */
  79.   public JobProfile(String user, org.apache.hadoop.mapreduce.JobID jobid, 
  80.                     String jobFile, String url,
  81.                     String name, String queueName) {
  82.     this.user = user;
  83.     this.jobid = JobID.downgrade(jobid);
  84.     this.jobFile = jobFile;
  85.     this.url = url;
  86.     this.name = name;
  87.     this.queueName = queueName;
  88.   }
  89.   
  90.   /**
  91.    * @deprecated use JobProfile(String, JobID, String, String, String) instead
  92.    */
  93.   @Deprecated
  94.   public JobProfile(String user, String jobid, String jobFile, String url,
  95.       String name) {
  96.     this(user, JobID.forName(jobid), jobFile, url, name);
  97.   }
  98.   
  99.   /**
  100.    * Get the user id.
  101.    */
  102.   public String getUser() {
  103.     return user;
  104.   }
  105.     
  106.   /**
  107.    * Get the job id.
  108.    */
  109.   public JobID getJobID() {
  110.     return jobid;
  111.   }
  112.   /**
  113.    * @deprecated use getJobID() instead
  114.    */
  115.   @Deprecated
  116.   public String getJobId() {
  117.     return jobid.toString();
  118.   }
  119.   
  120.   /**
  121.    * Get the configuration file for the job.
  122.    */
  123.   public String getJobFile() {
  124.     return jobFile;
  125.   }
  126.   /**
  127.    * Get the link to the web-ui for details of the job.
  128.    */
  129.   public URL getURL() {
  130.     try {
  131.       return new URL(url);
  132.     } catch (IOException ie) {
  133.       return null;
  134.     }
  135.   }
  136.   /**
  137.    * Get the user-specified job name.
  138.    */
  139.   public String getJobName() {
  140.     return name;
  141.   }
  142.   
  143.   /**
  144.    * Get the name of the queue to which the job is submitted.
  145.    * @return name of the queue.
  146.    */
  147.   public String getQueueName() {
  148.     return queueName;
  149.   }
  150.   
  151.   ///////////////////////////////////////
  152.   // Writable
  153.   ///////////////////////////////////////
  154.   public void write(DataOutput out) throws IOException {
  155.     jobid.write(out);
  156.     Text.writeString(out, jobFile);
  157.     Text.writeString(out, url);
  158.     Text.writeString(out, user);
  159.     Text.writeString(out, name);
  160.     Text.writeString(out, queueName);
  161.   }
  162.   public void readFields(DataInput in) throws IOException {
  163.     jobid.readFields(in);
  164.     this.jobFile = Text.readString(in);
  165.     this.url = Text.readString(in);
  166.     this.user = Text.readString(in);
  167.     this.name = Text.readString(in);
  168.     this.queueName = Text.readString(in);
  169.   }
  170. }