| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.hadoop.mapred; |
| |
| import org.apache.falcon.JobTrackerService; |
| import org.apache.hadoop.io.Text; |
| import org.apache.hadoop.ipc.RPC; |
| import org.apache.hadoop.mapreduce.security.token.delegation.DelegationTokenIdentifier; |
| import org.apache.hadoop.security.Credentials; |
| import org.apache.hadoop.security.authorize.AccessControlList; |
| import org.apache.hadoop.security.token.Token; |
| |
| import java.io.IOException; |
| |
| /** |
| * Hosted Local Job runner. |
| * Please note that one of org.apache.hadoop.mapred.LocalRunnerV2 or |
| * org.apache.hadoop.mapred.LocalRunnerV2 is active in the project depending |
| * on the profile chosen. |
| */ |
| public class LocalRunnerV1 implements JobSubmissionProtocol, JobTrackerService { |
| |
| private final JobSubmissionProtocol localProxy; |
| private final JobConf conf; |
| private RPC.Server server; |
| |
| public LocalRunnerV1() { |
| try { |
| conf = new JobConf(); |
| localProxy = new LocalJobRunner(conf); |
| } catch (IOException e) { |
| throw new RuntimeException("Unable to initialize localRunner"); |
| } |
| } |
| |
| @Override |
| public void start() throws Exception { |
| String[] tracker = conf.get("mapred.job.tracker", "localhost:41021").split(":"); |
| server = RPC.getServer(this, tracker[0], Integer.parseInt(tracker[1]), conf); |
| server.start(); |
| } |
| |
| @Override |
| public void stop() throws Exception { |
| server.stop(); |
| } |
| |
| @Override |
| public JobID getNewJobId() throws IOException { |
| return localProxy.getNewJobId(); |
| } |
| |
| @Override |
| public JobStatus submitJob(JobID jobName, String jobSubmitDir, Credentials ts) throws IOException { |
| return localProxy.submitJob(jobName, jobSubmitDir, ts); |
| } |
| |
| @Override |
| public ClusterStatus getClusterStatus(boolean detailed) throws IOException { |
| return localProxy.getClusterStatus(detailed); |
| } |
| |
| @Override |
| public AccessControlList getQueueAdmins(String queueName) throws IOException { |
| return localProxy.getQueueAdmins(queueName); |
| } |
| |
| @Override |
| public void killJob(JobID jobid) throws IOException { |
| localProxy.killJob(jobid); |
| } |
| |
| @Override |
| public void setJobPriority(JobID jobid, String priority) throws IOException { |
| localProxy.setJobPriority(jobid, priority); |
| } |
| |
| @Override |
| public boolean killTask(TaskAttemptID taskId, boolean shouldFail) throws IOException { |
| return localProxy.killTask(taskId, shouldFail); |
| } |
| |
| @Override |
| public JobProfile getJobProfile(JobID jobid) throws IOException { |
| return localProxy.getJobProfile(jobid); |
| } |
| |
| @Override |
| public JobStatus getJobStatus(JobID jobid) throws IOException { |
| return localProxy.getJobStatus(jobid); |
| } |
| |
| @Override |
| public Counters getJobCounters(JobID jobid) throws IOException { |
| return localProxy.getJobCounters(jobid); |
| } |
| |
| @Override |
| public TaskReport[] getMapTaskReports(JobID jobid) throws IOException { |
| return localProxy.getMapTaskReports(jobid); |
| } |
| |
| @Override |
| public TaskReport[] getReduceTaskReports(JobID jobid) throws IOException { |
| return localProxy.getReduceTaskReports(jobid); |
| } |
| |
| @Override |
| public TaskReport[] getCleanupTaskReports(JobID jobid) throws IOException { |
| return localProxy.getCleanupTaskReports(jobid); |
| } |
| |
| @Override |
| public TaskReport[] getSetupTaskReports(JobID jobid) throws IOException { |
| return localProxy.getSetupTaskReports(jobid); |
| } |
| |
| @Override |
| public String getFilesystemName() throws IOException { |
| return localProxy.getFilesystemName(); |
| } |
| |
| @Override |
| public JobStatus[] jobsToComplete() throws IOException { |
| return localProxy.jobsToComplete(); |
| } |
| |
| @Override |
| public JobStatus[] getAllJobs() throws IOException { |
| return localProxy.getAllJobs(); |
| } |
| |
| @Override |
| public TaskCompletionEvent[] getTaskCompletionEvents(JobID jobid, int fromEventId, int maxEvents) |
| throws IOException { |
| return localProxy.getTaskCompletionEvents(jobid, fromEventId, maxEvents); |
| } |
| |
| @Override |
| public String[] getTaskDiagnostics(TaskAttemptID taskId) throws IOException { |
| return localProxy.getTaskDiagnostics(taskId); |
| } |
| |
| @Override |
| public String getSystemDir() { |
| return localProxy.getSystemDir(); |
| } |
| |
| @Override |
| public String getStagingAreaDir() throws IOException { |
| return localProxy.getStagingAreaDir(); |
| } |
| |
| @Override |
| public JobQueueInfo[] getQueues() throws IOException { |
| return localProxy.getQueues(); |
| } |
| |
| @Override |
| public JobQueueInfo getQueueInfo(String queue) throws IOException { |
| return localProxy.getQueueInfo(queue); |
| } |
| |
| @Override |
| public JobStatus[] getJobsFromQueue(String queue) throws IOException { |
| return localProxy.getJobsFromQueue(queue); |
| } |
| |
| @Override |
| public QueueAclsInfo[] getQueueAclsForCurrentUser() throws IOException { |
| return localProxy.getQueueAclsForCurrentUser(); |
| } |
| |
| @Override |
| public Token<DelegationTokenIdentifier> getDelegationToken(Text renewer) throws IOException, InterruptedException { |
| return new Token<DelegationTokenIdentifier>(null, null, null, null); |
| } |
| |
| @Override |
| public long renewDelegationToken(Token<DelegationTokenIdentifier> token) throws IOException, InterruptedException { |
| return localProxy.renewDelegationToken(token); |
| } |
| |
| @Override |
| public void cancelDelegationToken(Token<DelegationTokenIdentifier> token) throws IOException, InterruptedException { |
| localProxy.cancelDelegationToken(token); |
| } |
| |
| @Override |
| public long getProtocolVersion(String protocol, long clientVersion) throws IOException { |
| return localProxy.getProtocolVersion(protocol, clientVersion); |
| } |
| } |