[ 
https://issues.apache.org/jira/browse/PIG-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13160191#comment-13160191
 ] 

Thomas Weise commented on PIG-2388:
-----------------------------------

Even though the common code (outside shim) can be compiled against either of 
the Hadoop MR versions, it needs to run against the version it was compiled 
against (due to changes from class to interface in several cases). Whenever we 
have something like   jobcontext.getConfiguration()   etc., the bytecode for 
the method call will be different depending on whether jobcontext is a class or 
interface (compile time fine, runtime not). Other places like  
somemethod(JobContext context)  don't have that problem. Could get it to work 
for basic illustrate, but as soon as MR comes into the picture, there are many 
many places in the common code that are affected and it is not reasonably 
possible to shim all those.

Our solution will be an installer that contains set of jar files compiled 
against both versions and resolve the dependency at startup/install time.

                
> Make shim for Hadoop 0.20 and 0.23 support dynamic
> --------------------------------------------------
>
>                 Key: PIG-2388
>                 URL: https://issues.apache.org/jira/browse/PIG-2388
>             Project: Pig
>          Issue Type: Improvement
>    Affects Versions: 0.10, 0.9.2
>            Reporter: Thomas Weise
>            Assignee: Thomas Weise
>             Fix For: 0.10, 0.9.2
>
>         Attachments: PIG-2388_branch-0.9.patch
>
>
> We need a single Pig installation that works with both Hadoop versions. The 
> current shim implementation assumes different builds for each version. We can 
> solve this statically through internal build/installation system or by making 
> the shim dynamic so that pig.jar will work on both version with runtime 
> detection. Attached patch is to convert the static shims into a shim 
> interface with 2 implementations, each of which will be compiled against the 
> respective Hadoop version and included into single pig.jar (similar to what 
> Hive does).
> The default build behavior remains unchanged, only the shim for 
> ${hadoopversion} will be compiled. Both shims can be built via:  ant 
> -Dbuild-all-shims=true

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to