[
https://issues.apache.org/jira/browse/PIG-2885?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Cheolsoo Park updated PIG-2885:
-------------------------------
Attachment: PIG-2885-2.patch
Updating the patch:
1. Stop bundling hbase.jar and zookeoper.jar with pig.jar. So there should be
no longer incompatibility issues when using pig.jar with different versions of
hbase.jar. But to use HBaseStorage, HBASE_HOME and ZOOKEEPER_HOME must be set
by the user.
Note that I am adding protobuf-java.jar to pig.jar because otherwise it has to
be explicitly added to PIG_CLASSPATH to use HBaseStorage, which is not very
intuitive.
2. Bump hbase and zk to 0.94.1 and 3.4.3 respectively. Since we no longer
bundle them in pig.jar, which versions we use doesn't matter. These jar files
will be used for unit test only.
3. Make the unit test cases work with newer versions of hbase and zk.
4. Add hbase runtime dependencies to ivy.xml. I tried to find an alternative
way of specifying distinct dependencies in ivy.xml without adding them
explicitly but no luck.
Basically, what I want to do is as follows:
- pulls down hbase.jar only at compile time.
- pulls down runtime dependencies as well at test time.
What I tried was "conf=compile->master;test->default", but apparently, it
doesn't work. Instead, runtime depedencies are always pulled down. Please let
me know if anyone has a better idea about how to achieve this.
Thanks!
> TestJobSumission and TestHBaseStorage don't work with HBase 0.94 and ZK 3.4.3
> -----------------------------------------------------------------------------
>
> Key: PIG-2885
> URL: https://issues.apache.org/jira/browse/PIG-2885
> Project: Pig
> Issue Type: Bug
> Environment: Hadoop 1.0.3, CentOS 6.3 64 bit
> Reporter: Cheolsoo Park
> Assignee: Cheolsoo Park
> Priority: Minor
> Labels: hbase
> Attachments: PIG-2885-2.patch, PIG-2885.patch
>
>
> I ran into two unit test failures (TestJobSubmission and TestHBaseStorage) by
> bumping the version of HBase and ZK to 0.94 and 3.4.3 respectively in hadoop
> 1.0.3. I am opening a jira to capture what I found for future reference.
> - Two dependency libraries of HBase 0.94 are missing in ivy.xml -
> high-scale-lib and protobuf-java.
> - The HTable constructor in HBase 0.94 changed:
> {code}
> - HTable table = new HTable(TESTTABLE_2);
> + HTable table = new HTable(conf, TESTTABLE_2);
> {code}
> - The default client port of MiniZooKeeperCluster in HBase 0.94 is no longer
> 21818. Since it is chosen randomly at runtime, it has to be set in PigContext.
> {code}
> @@ -541,7 +543,7 @@ public class TestJobSubmission {
> // use the estimation
> Configuration conf = cluster.getConfiguration();
> HBaseTestingUtility util = new HBaseTestingUtility(conf);
> - util.startMiniZKCluster();
> + int clientPort = util.startMiniZKCluster().getClientPort();
> util.startMiniHBaseCluster(1, 1);
>
> String query = "a = load '/passwd';" +
> @@ -553,6 +555,7 @@ public class TestJobSubmission {
>
> pc.getConf().setProperty("pig.exec.reducers.bytes.per.reducer",
> "100");
> pc.getConf().setProperty("pig.exec.reducers.max", "10");
> + pc.getConf().setProperty(HConstants.ZOOKEEPER_CLIENT_PORT,
> Integer.toString(clientPort));
> ConfigurationValidator.validatePigProperties(pc.getProperties());
> conf = ConfigurationUtil.toConfiguration(pc.getProperties());
> JobControlCompiler jcc = new JobControlCompiler(pc, conf);
> {code}
> With the attached patch, both tests pass with hadoop 1.0.3. Please note that
> TestHBaseStorage fails in hadoop 0.23, and I haven't investigated that.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira