You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2011/08/30 08:31:11 UTC
svn commit: r1163100 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReduceLauncher.java
Author: daijy
Date: Tue Aug 30 06:31:11 2011
New Revision: 1163100
URL: http://svn.apache.org/viewvc?rev=1163100&view=rev
Log:
PIG-604: Kill the Pig job should kill all associated Hadoop Jobs
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReduceLauncher.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1163100&r1=1163099&r2=1163100&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Tue Aug 30 06:31:11 2011
@@ -23,6 +23,9 @@ Trunk (unreleased changes)
INCOMPATIBLE CHANGES
IMPROVEMENTS
+
+PIG-604: Kill the Pig job should kill all associated Hadoop Jobs (daijy)
+
PIG-2096: End to end tests for new Macro feature (gates)
PIG-2242: Allow the delimiter to be specified when calling TOKENIZE (markroddy via hashutosh)
Modified: pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReduceLauncher.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReduceLauncher.java?rev=1163100&r1=1163099&r2=1163100&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReduceLauncher.java (original)
+++ pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/MapReduceLauncher.java Tue Aug 30 06:31:11 2011
@@ -89,6 +89,33 @@ public class MapReduceLauncher extends L
public static final String SUCCESSFUL_JOB_OUTPUT_DIR_MARKER =
"mapreduce.fileoutputcommitter.marksuccessfuljobs";
+ private JobControl jc=null;
+
+ private class HangingJobKiller extends Thread {
+ public HangingJobKiller() {
+ }
+ @Override
+ public void run() {
+ try {
+ log.debug("Receive kill signal");
+ if (jc!=null) {
+ for (Job job : jc.getRunningJobs()) {
+ RunningJob runningJob = job.getJobClient().getJob(job.getAssignedJobID());
+ if (runningJob!=null)
+ runningJob.killJob();
+ log.info("Job " + job.getJobID() + " killed");
+ }
+ }
+ } catch (Exception e) {
+ log.warn("Encounter exception on cleanup:" + e);
+ }
+ }
+ }
+
+ public MapReduceLauncher() {
+ Runtime.getRuntime().addShutdownHook(new HangingJobKiller());
+ }
+
/**
* Get the exception that caused a failure on the backend for a
* store location (if any).
@@ -132,7 +159,6 @@ public class MapReduceLauncher extends L
List<NativeMapReduceOper> failedNativeMR = new LinkedList<NativeMapReduceOper>();
List<Job> completeFailedJobsInThisRun = new LinkedList<Job>();
List<Job> succJobs = new LinkedList<Job>();
- JobControl jc;
int totalMRJobs = mrp.size();
int numMRJobsCompl = 0;
double lastProg = -1;