You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-commits@hadoop.apache.org by ma...@apache.org on 2012/01/16 20:40:00 UTC
svn commit: r1232128 - in
/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project: CHANGES.txt
hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/JobEndNotifier.java
Author: mahadev
Date: Mon Jan 16 19:40:00 2012
New Revision: 1232128
URL: http://svn.apache.org/viewvc?rev=1232128&view=rev
Log:
MAPREDUCE-3649. Job End notification gives an error on calling back. (Ravi Prakash via mahadev) - Merging r1232126 from trunk.
Modified:
hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/JobEndNotifier.java
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt?rev=1232128&r1=1232127&r2=1232128&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt Mon Jan 16 19:40:00 2012
@@ -439,6 +439,9 @@ Release 0.23.1 - Unreleased
MAPREDUCE-3664. Federation Documentation has incorrect configuration example.
(Brandon Li via jitendra)
+ MAPREDUCE-3649. Job End notification gives an error on calling back.
+ (Ravi Prakash via mahadev)
+
Release 0.23.0 - 2011-11-01
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/JobEndNotifier.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/JobEndNotifier.java?rev=1232128&r1=1232127&r2=1232128&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/JobEndNotifier.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/JobEndNotifier.java Mon Jan 16 19:40:00 2012
@@ -19,12 +19,11 @@
package org.apache.hadoop.mapreduce.v2.app;
import java.io.IOException;
-import java.io.InputStream;
+import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
import java.net.Proxy;
+import java.net.URL;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;
@@ -40,7 +39,8 @@ import org.mortbay.log.Log;
* User can specify number of retry attempts and a time interval at which to
* attempt retries</li><li>
* Cluster administrators can set final parameters to set maximum number of
- * tries (0 would disable job end notification) and max time interval</li><li>
+ * tries (0 would disable job end notification) and max time interval and a
+ * proxy if needed</li><li>
* The URL may contain sentinels which will be replaced by jobId and jobStatus
* (eg. SUCCEEDED/KILLED/FAILED) </li> </ul>
* </p>
@@ -59,8 +59,8 @@ public class JobEndNotifier implements C
/**
* Parse the URL that needs to be notified of the end of the job, along
- * with the number of retries in case of failure and the amount of time to
- * wait between retries
+ * with the number of retries in case of failure, the amount of time to
+ * wait between retries and proxy settings
* @param conf the configuration
*/
public void setConf(Configuration conf) {
@@ -119,15 +119,19 @@ public class JobEndNotifier implements C
boolean success = false;
try {
Log.info("Job end notification trying " + urlToNotify);
- URLConnection conn = urlToNotify.openConnection(proxyToUse);
+ HttpURLConnection conn = (HttpURLConnection) urlToNotify.openConnection();
conn.setConnectTimeout(5*1000);
conn.setReadTimeout(5*1000);
conn.setAllowUserInteraction(false);
- InputStream is = conn.getInputStream();
- conn.getContent();
- is.close();
- success = true;
- Log.info("Job end notification to " + urlToNotify + " succeeded");
+ if(conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
+ Log.warn("Job end notification to " + urlToNotify +" failed with code: "
+ + conn.getResponseCode() + " and message \"" + conn.getResponseMessage()
+ +"\"");
+ }
+ else {
+ success = true;
+ Log.info("Job end notification to " + urlToNotify + " succeeded");
+ }
} catch(IOException ioe) {
Log.warn("Job end notification to " + urlToNotify + " failed", ioe);
}
@@ -135,8 +139,8 @@ public class JobEndNotifier implements C
}
/**
- * Notify a server of the completion of a submitted job. The server must have
- * configured MRConfig.JOB_END_NOTIFICATION_URLS
+ * Notify a server of the completion of a submitted job. The user must have
+ * configured MRJobConfig.MR_JOB_END_NOTIFICATION_URL
* @param jobReport JobReport used to read JobId and JobStatus
* @throws InterruptedException
*/