Daniel Dai commented on PIG-924:

>From your latest patch, shims works this way
1. The version of shims Pig compiles is controlled by "hadoop.version" property 
in build.xml
2. The version of shims Pig uses is determined dynamically by hacking the 
string returned by VersionInfo.getVersion

As in your code comment, version string hack is not safe. My thinking is that 
pig only use bundled hadoop unless override:
1. Pig compile all version of shims, There is no conflict between different 
version of shims, why not compile them all? So user do not need to recompile 
the code if he want to use different external hadoop.
2. Pig bundles a default hadoop, which is specified by hadoop.version in 
build.xml. Pig use this version of shims by default
3. If user want to use an external hadoop, he/she need to override the default 
hadoop version explicitly, eg, "-Dhadoop_version" in command line. 

> Make Pig work with multiple versions of Hadoop
> ----------------------------------------------
>                 Key: PIG-924
>                 URL: https://issues.apache.org/jira/browse/PIG-924
>             Project: Pig
>          Issue Type: Bug
>            Reporter: Dmitriy V. Ryaboy
>         Attachments: pig_924.2.patch, pig_924.3.patch, pig_924.patch
> The current Pig build scripts package hadoop and other dependencies into the 
> pig.jar file.
> This means that if users upgrade Hadoop, they also need to upgrade Pig.
> Pig has relatively few dependencies on Hadoop interfaces that changed between 
> 18, 19, and 20.  It is possibly to write a dynamic shim that allows Pig to 
> use the correct calls for any of the above versions of Hadoop. Unfortunately, 
> the building process precludes us from the ability to do this at runtime, and 
> forces an unnecessary Pig rebuild even if dynamic shims are created.

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

Reply via email to