You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2015/11/23 03:29:00 UTC
incubator-kylin git commit: KYLIN-1149 When yarn return an incomplete
job tracking URL, Kylin will fail to get job status
Repository: incubator-kylin
Updated Branches:
refs/heads/2.x-staging 4378ca569 -> 1a1f2bedd
KYLIN-1149 When yarn return an incomplete job tracking URL, Kylin will fail to get job status
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/1a1f2bed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/1a1f2bed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/1a1f2bed
Branch: refs/heads/2.x-staging
Commit: 1a1f2bedd7d22823f26d8026e318f05cf11b1c72
Parents: 4378ca5
Author: shaofengshi <sh...@apache.org>
Authored: Mon Nov 23 10:28:51 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Mon Nov 23 10:28:51 2015 +0800
----------------------------------------------------------------------
.../engine/mr/common/HadoopStatusGetter.java | 25 ++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/1a1f2bed/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/HadoopStatusGetter.java
----------------------------------------------------------------------
diff --git a/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/HadoopStatusGetter.java b/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/HadoopStatusGetter.java
index 3a79a3d..7bab771 100644
--- a/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/HadoopStatusGetter.java
+++ b/engine-mr/src/main/java/org/apache/kylin/engine/mr/common/HadoopStatusGetter.java
@@ -18,14 +18,13 @@
package org.apache.kylin.engine.mr.common;
-import java.io.IOException;
-
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState;
@@ -34,6 +33,9 @@ import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.net.MalformedURLException;
+
/**
*/
public class HadoopStatusGetter {
@@ -83,6 +85,11 @@ public class HadoopStatusGetter {
int cut = s.indexOf("url=");
if (cut >= 0) {
redirect = s.substring(cut + 4);
+
+ if (isValidURL(redirect) == false) {
+ logger.info("Get invalid redirect url, skip it: " + redirect);
+ continue;
+ }
}
}
@@ -111,4 +118,18 @@ public class HadoopStatusGetter {
}
}
+ private static boolean isValidURL(String value) {
+ if (StringUtils.isNotEmpty(value)) {
+ java.net.URL url;
+ try {
+ url = new java.net.URL(value);
+ } catch (MalformedURLException var5) {
+ return false;
+ }
+
+ return StringUtils.isNotEmpty(url.getProtocol()) && StringUtils.isNotEmpty(url.getHost());
+ }
+
+ return false;
+ }
}