[
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)