[ https://issues.apache.org/jira/browse/MAPREDUCE-5830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13966847#comment-13966847 ]
Jason Lowe edited comment on MAPREDUCE-5830 at 4/11/14 5:36 PM: ---------------------------------------------------------------- It's in the 0.23 shims, e.g.: http://svn.apache.org/repos/asf/hive/branches/branch-0.13/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java {code} @Override public String getTaskAttemptLogUrl(JobConf conf, String taskTrackerHttpAddress, String taskAttemptId) throws MalformedURLException { if (conf.get("mapreduce.framework.name") != null && conf.get("mapreduce.framework.name").equals("yarn")) { // if the cluster is running in MR2 mode, return null LOG.warn("Can't fetch tasklog: TaskLogServlet is not supported in MR2 mode."); return null; } else { // if the cluster is running in MR1 mode, using HostUtil to construct TaskLogURL URL taskTrackerHttpURL = new URL(taskTrackerHttpAddress); return HostUtil.getTaskLogUrl(taskTrackerHttpURL.getHost(), Integer.toString(taskTrackerHttpURL.getPort()), taskAttemptId); } } {code} So in this case I suspect we would never try to call it at runtime, but it broke source backwards-compatibility when Hive 0.13 tries to compile on 2.4. was (Author: jlowe): It's in the 0.23 shims, e.g.: http://svn.apache.org/repos/asf/hive/branches/branch-0.13/shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java: {code} @Override public String getTaskAttemptLogUrl(JobConf conf, String taskTrackerHttpAddress, String taskAttemptId) throws MalformedURLException { if (conf.get("mapreduce.framework.name") != null && conf.get("mapreduce.framework.name").equals("yarn")) { // if the cluster is running in MR2 mode, return null LOG.warn("Can't fetch tasklog: TaskLogServlet is not supported in MR2 mode."); return null; } else { // if the cluster is running in MR1 mode, using HostUtil to construct TaskLogURL URL taskTrackerHttpURL = new URL(taskTrackerHttpAddress); return HostUtil.getTaskLogUrl(taskTrackerHttpURL.getHost(), Integer.toString(taskTrackerHttpURL.getPort()), taskAttemptId); } } {code} So in this case I suspect we would never try to call it at runtime, but it broke source backwards-compatibility when Hive 0.13 tries to compile on 2.4. > HostUtil.getTaskLogUrl is not backwards binary compatible with 2.3 > ------------------------------------------------------------------ > > Key: MAPREDUCE-5830 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-5830 > Project: Hadoop Map/Reduce > Issue Type: Bug > Affects Versions: 2.4.0 > Reporter: Jason Lowe > Priority: Blocker > > HostUtil.getTaskLogUrl used to have a signature like this in Hadoop 2.3.0 and > earlier: > public static String getTaskLogUrl(String taskTrackerHostName, String > httpPort, String taskAttemptID) > but now has a signature like this: > public static String getTaskLogUrl(String scheme, String taskTrackerHostName, > String httpPort, String taskAttemptID) > This breaks source and binary backwards-compatibility. MapReduce and Hive > both have references to this, so their jars compiled against 2.3 or earlier > do not work on 2.4. -- This message was sent by Atlassian JIRA (v6.2#6252)