hadoop-hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HIVE-487) Hive does not compile with Hadoop 0.20.0
Date Thu, 23 Jul 2009 19:37:15 GMT

    [ https://issues.apache.org/jira/browse/HIVE-487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12734749#action_12734749
] 

Todd Lipcon commented on HIVE-487:
----------------------------------

A couple thoughts:

- Does the same compiled jar truly work in all versions of Hadoop between 0.17 and 0.19? That
is to say, can we consider an option in which we use some build.xml rules to, depending on
the value of a hadoop.version variable, swap between two implementations of the same .java
file (one compatible with Jetty 5, one with Jetty 6)? Then in the build product we could simply
include two jars and have the wrapper scripts swap between them based on version. If size
is a concern, the variant classes could be put in their own jar that would only be a few KB.

- The reflection code in this patch is pretty messy. I mocked up an idea for a slightly cleaner
way to do it, and will attach it as a tarball momentarily. The idea is to define our own interfaces
which have the same methods as we need to use in Jetty, and use a dynamic proxy to forward
those invocations through to the actual implementation class. Dynamically choosing between
the two interfaces is simple at runtime by simply checking that the method signatures correspond.
This is still dirty (and a bad role model for CS students ;-) ) but it should reduce the number
of Class.forName and .getMethod calls in the wrapper class

> Hive does not compile with Hadoop 0.20.0
> ----------------------------------------
>
>                 Key: HIVE-487
>                 URL: https://issues.apache.org/jira/browse/HIVE-487
>             Project: Hadoop Hive
>          Issue Type: Bug
>    Affects Versions: 0.3.0
>            Reporter: Aaron Kimball
>            Assignee: Justin Lynn
>             Fix For: 0.4.0
>
>         Attachments: HIVE-487-2.patch, hive-487-jetty-2.diff, hive-487-jetty.patch, hive-487.3.patch,
hive-487.4.patch, HIVE-487.patch, jetty-patch.patch, junit-patch1.html
>
>
> Attempting to compile Hive with Hadoop 0.20.0 fails:
> aaron@jargon:~/src/ext/svn/hive-0.3.0$ ant -Dhadoop.version=0.20.0 package
> (several lines elided)
> compile:
>      [echo] Compiling: hive
>     [javac] Compiling 261 source files to /home/aaron/src/ext/svn/hive-0.3.0/build/ql/classes
>     [javac] /home/aaron/src/ext/svn/hive-0.3.0/build/ql/java/org/apache/hadoop/hive/ql/exec/ExecDriver.java:94:
cannot find symbol
>     [javac] symbol  : method getCommandLineConfig()
>     [javac] location: class org.apache.hadoop.mapred.JobClient
>     [javac]       Configuration commandConf = JobClient.getCommandLineConfig();
>     [javac]                                            ^
>     [javac] /home/aaron/src/ext/svn/hive-0.3.0/build/ql/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java:241:
cannot find symbol
>     [javac] symbol  : method validateInput(org.apache.hadoop.mapred.JobConf)
>     [javac] location: interface org.apache.hadoop.mapred.InputFormat
>     [javac]       inputFormat.validateInput(newjob);
>     [javac]                  ^
>     [javac] Note: Some input files use or override a deprecated API.
>     [javac] Note: Recompile with -Xlint:deprecation for details.
>     [javac] Note: Some input files use unchecked or unsafe operations.
>     [javac] Note: Recompile with -Xlint:unchecked for details.
>     [javac] 2 errors
> BUILD FAILED
> /home/aaron/src/ext/svn/hive-0.3.0/build.xml:145: The following error occurred while
executing this line:
> /home/aaron/src/ext/svn/hive-0.3.0/ql/build.xml:135: Compile failed; see the compiler
error output for details.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message