This project has retired. For details please refer to its Attic page.
HadoopUtils xref
View Javadoc

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.giraph.job;
19  
20  import org.apache.hadoop.conf.Configuration;
21  import org.apache.hadoop.mapreduce.Job;
22  import org.apache.hadoop.mapreduce.JobID;
23  import org.apache.hadoop.mapreduce.JobContext;
24  import org.apache.hadoop.mapreduce.TaskAttemptID;
25  import org.apache.hadoop.mapreduce.TaskAttemptContext;
26  
27  /*if_not[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]*/
28  import org.apache.hadoop.mapreduce.task.JobContextImpl;
29  import org.apache.hadoop.mapreduce.task.TaskAttemptContextImpl;
30  /*end[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]*/
31  
32  /**
33   * Helpers for dealing with Hadoop.
34   */
35  public class HadoopUtils {
36    /** Don't construct */
37    private HadoopUtils() { }
38  
39    /**
40     * Create a TaskAttemptContext, supporting many Hadoops.
41     *
42     * @param conf Configuration
43     * @param taskAttemptID TaskAttemptID to use
44     * @return TaskAttemptContext
45     */
46    public static TaskAttemptContext makeTaskAttemptContext(Configuration conf,
47        TaskAttemptID taskAttemptID) {
48      TaskAttemptContext context;
49  /*if[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]
50      context = new TaskAttemptContext(conf, taskAttemptID);
51  else[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]*/
52      context = new TaskAttemptContextImpl(conf, taskAttemptID);
53  /*end[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]*/
54      return context;
55    }
56  
57    /**
58     * Create a TaskAttemptContext, supporting many Hadoops.
59     *
60     * @param conf Configuration
61     * @param taskAttemptContext Use TaskAttemptID from this object
62     * @return TaskAttemptContext
63     */
64    public static TaskAttemptContext makeTaskAttemptContext(Configuration conf,
65        TaskAttemptContext taskAttemptContext) {
66      return makeTaskAttemptContext(conf, taskAttemptContext.getTaskAttemptID());
67    }
68  
69    /**
70     * Create a TaskAttemptContext, supporting many Hadoops.
71     *
72     * @param conf Configuration
73     * @return TaskAttemptContext
74     */
75    public static TaskAttemptContext makeTaskAttemptContext(Configuration conf) {
76      return makeTaskAttemptContext(conf, new TaskAttemptID());
77    }
78  
79    /**
80     * Create a TaskAttemptContext, supporting many Hadoops.
81     *
82     * @return TaskAttemptContext
83     */
84    public static TaskAttemptContext makeTaskAttemptContext() {
85      return makeTaskAttemptContext(new Configuration());
86    }
87  
88    /**
89     * Create a JobContext, supporting many Hadoops.
90     *
91     * @param conf Configuration
92     * @param jobID JobID to use
93     * @return JobContext
94     */
95    public static JobContext makeJobContext(Configuration conf, JobID jobID) {
96      JobContext context;
97  /*if[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]
98      context = new JobContext(conf, jobID);
99  else[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]*/
100     context = new JobContextImpl(conf, jobID);
101 /*end[HADOOP_NON_JOBCONTEXT_IS_INTERFACE]*/
102     return context;
103   }
104 
105   /**
106    * Get Job ID from job.
107    * May return null for hadoop 0.20.203
108    * @param job submitted job
109    * @return JobId for submitted job.
110    */
111   public static JobID getJobID(Job job) {
112 /*if[HADOOP_JOB_ID_AVAILABLE]
113     return job.getID();
114 else[HADOOP_JOB_ID_AVAILABLE]*/
115     return job.getJobID();
116 /*end[HADOOP_JOB_ID_AVAILABLE]*/
117   }
118 
119   /**
120    * Create a JobContext, supporting many Hadoops.
121    *
122    * @param conf Configuration
123    * @param jobContext Use JobID from this object
124    * @return JobContext
125    */
126   public static JobContext makeJobContext(Configuration conf,
127       JobContext jobContext) {
128     return makeJobContext(conf, jobContext.getJobID());
129   }
130 
131   /**
132    * Create a JobContext, supporting many Hadoops.
133    *
134    * @param conf Configuration
135    * @return JobContext
136    */
137   public static JobContext makeJobContext(Configuration conf) {
138     return makeJobContext(conf, new JobID());
139   }
140 
141   /**
142    * Create a JobContext, supporting many Hadoops.
143    *
144    * @return JobContext
145    */
146   public static JobContext makeJobContext() {
147     return makeJobContext(new Configuration());
148   }
149 }