PerformanceEvaluation does not set the correct classpath for MR because it 
lives in the test jar
------------------------------------------------------------------------------------------------

                 Key: HBASE-5276
                 URL: https://issues.apache.org/jira/browse/HBASE-5276
             Project: HBase
          Issue Type: Bug
          Components: test
    Affects Versions: 0.90.4
            Reporter: Tim Robertson
            Priority: Minor


Note: This was discovered running the CDH version hbase-0.90.4-cdh3u2

Running the PerformanceEvaluation as follows:
  $HADOOP_HOME/bin/hadoop org.apache.hadoop.hbase.PerformanceEvaluation scan 5

fails because the MR tasks do not get the HBase jar on the CP, and thus hit 
ClassNotFoundExceptions.

The job gets the following only:
  file:/Users/tim/dev/hadoop/hbase-0.90.4-cdh3u2/hbase-0.90.4-cdh3u2-tests.jar
  file:/Users/tim/dev/hadoop/hadoop-0.20.2-cdh3u2/hadoop-core-0.20.2-cdh3u2.jar
  file:/Users/tim/dev/hadoop/hbase-0.90.4-cdh3u2/lib/zookeeper-3.3.3-cdh3u2.jar

The RowCounter etc all work because they live in the HBase jar, not the test 
jar, and they get the following 
  file:/Users/tim/dev/hadoop/hbase-0.90.4-cdh3u2/lib/guava-r06.jar
  file:/Users/tim/dev/hadoop/hadoop-0.20.2-cdh3u2/hadoop-core-0.20.2-cdh3u2.jar
  file:/Users/tim/dev/hadoop/hbase-0.90.4-cdh3u2/hbase-0.90.4-cdh3u2.jar
  file:/Users/tim/dev/hadoop/hbase-0.90.4-cdh3u2/lib/zookeeper-3.3.3-cdh3u2.jar

Presumably this relates to 
  job.setJarByClass(PerformanceEvaluation.class);
  ...
  TableMapReduceUtil.addDependencyJars(job);

A (cowboy) workaround to run PE is to unpack the jars, and copy the 
PerformanceEvaluation* classes building a patched jar.


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