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

Reply via email to