You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nihal Jain (JIRA)" <ji...@apache.org> on 2018/07/09 15:04:00 UTC

[jira] [Comment Edited] (HBASE-19421) branch-1 does not compile against Hadoop 3.0.0

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

Nihal Jain edited comment on HBASE-19421 at 7/9/18 3:03 PM:
------------------------------------------------------------

Hi, 

While working on compiling hbase with hadoop-3, I found the following problems:
 * Although the code compiles correctly, after importing it in eclipse using the below command, I got the following build problem.
{code:java}
mvn eclipse:eclipse -Dhadoop.profile=3.0 -Dhadoop-three.version=3.0.0-alpha4{code}
 !org.apache.hadoop.hbase.rest.filter.GZIPRequestStream.png! 
The problem occurs as ServletInputStream is imported from javax.servlet-api-3.1.0.jar (coming from hadoop-commons) rather than servlet-api-2.5-6.1.14.jar
* Few test cases fail:
** org.apache.hadoop.hbase.http.conf.TestConfServlet.testWriteJson() fails due to [MAPREDUCE-5972|https://issues.apache.org/jira/browse/MAPREDUCE-5972]
*Solution:*
{code:java}
-          && "programatically".equals(resource)) { 
+          && ("programatically".equals(resource) || "programmatically".equals(resource))) { 
{code}

{noformat}
junit.framework.AssertionFailedError
	at junit.framework.Assert.fail(Assert.java:55)
	at junit.framework.Assert.assertTrue(Assert.java:22)
	at junit.framework.Assert.assertTrue(Assert.java:31)
	at junit.framework.TestCase.assertTrue(TestCase.java:201)
	at org.apache.hadoop.hbase.http.conf.TestConfServlet.testWriteJson(TestConfServlet.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at junit.framework.TestCase.runTest(TestCase.java:176)
	at junit.framework.TestCase.runBare(TestCase.java:141)
	at junit.framework.TestResult$1.protect(TestResult.java:122)
	at junit.framework.TestResult.runProtected(TestResult.java:142)
	at junit.framework.TestResult.run(TestResult.java:125)
	at junit.framework.TestCase.run(TestCase.java:129)
	at junit.framework.TestSuite.runTest(TestSuite.java:252)
	at junit.framework.TestSuite.run(TestSuite.java:247)
	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
{noformat}
** org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactoryImpl.testCreateThriftOneSource() and org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactoryImpl.testCreateThriftTwoSource() failed due to:
{noformat}
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.sun.proxy.$Proxy7.<clinit>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:739)
	at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:294)
	at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:185)
	at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:602)
	at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:638)
	at org.apache.commons.configuration2.builder.fluent.Configurations.fileBasedBuilder(Configurations.java:164)
	at org.apache.commons.configuration2.builder.fluent.Configurations.propertiesBuilder(Configurations.java:264)
	at org.apache.hadoop.metrics2.impl.MetricsConfig.loadFirst(MetricsConfig.java:115)
	at org.apache.hadoop.metrics2.impl.MetricsConfig.create(MetricsConfig.java:98)
	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:478)
	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:188)
	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:163)
	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:62)
	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:58)
	at org.apache.hadoop.hbase.metrics.BaseSourceImpl$DefaultMetricsSystemInitializer.init(BaseSourceImpl.java:51)
	at org.apache.hadoop.hbase.metrics.BaseSourceImpl.<init>(BaseSourceImpl.java:112)
	at org.apache.hadoop.hbase.metrics.ExceptionTrackingSourceImpl.<init>(ExceptionTrackingSourceImpl.java:42)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceImpl.<init>(MetricsThriftServerSourceImpl.java:59)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceFactoryImpl$FactoryStorage.<init>(MetricsThriftServerSourceFactoryImpl.java:35)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceFactoryImpl$FactoryStorage.<clinit>(MetricsThriftServerSourceFactoryImpl.java:34)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceFactoryImpl.createThriftOneSource(MetricsThriftServerSourceFactoryImpl.java:47)
	at org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactoryImpl.testCreateThriftOneSource(TestMetricsThriftServerSourceFactoryImpl.java:48)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 52 more
{noformat}
 *Solution:* Remove the following exclusion from hadoop-3.0 profile
{code:java}
             <exclusion> 
               <groupId>commons-beanutils</groupId> 
               <artifactId>commons-beanutils</artifactId> 
             </exclusion> 
{code}
 



was (Author: nihaljain.cs):
Hi, 

While working on compiling hbase with hadoop-3, I found the following problems:
 * Although the code compiles correctly, after importing it in eclipse using the below command, I got the following compilation build problem.
{code:java}
mvn eclipse:eclipse -Dhadoop.profile=3.0 -Dhadoop-three.version=3.0.0-alpha4{code}
 !org.apache.hadoop.hbase.rest.filter.GZIPRequestStream.png! 
The problem occurs as ServletInputStream is imported from javax.servlet-api-3.1.0.jar (coming from hadoop-commons) rather than servlet-api-2.5-6.1.14.jar
* Few test cases fail:
** org.apache.hadoop.hbase.http.conf.TestConfServlet.testWriteJson() fails due to [MAPREDUCE-5972|https://issues.apache.org/jira/browse/MAPREDUCE-5972]

{noformat}
junit.framework.AssertionFailedError
	at junit.framework.Assert.fail(Assert.java:55)
	at junit.framework.Assert.assertTrue(Assert.java:22)
	at junit.framework.Assert.assertTrue(Assert.java:31)
	at junit.framework.TestCase.assertTrue(TestCase.java:201)
	at org.apache.hadoop.hbase.http.conf.TestConfServlet.testWriteJson(TestConfServlet.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at junit.framework.TestCase.runTest(TestCase.java:176)
	at junit.framework.TestCase.runBare(TestCase.java:141)
	at junit.framework.TestResult$1.protect(TestResult.java:122)
	at junit.framework.TestResult.runProtected(TestResult.java:142)
	at junit.framework.TestResult.run(TestResult.java:125)
	at junit.framework.TestCase.run(TestCase.java:129)
	at junit.framework.TestSuite.runTest(TestSuite.java:252)
	at junit.framework.TestSuite.run(TestSuite.java:247)
	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
{noformat}
** org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactoryImpl.testCreateThriftOneSource() and org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactoryImpl.testCreateThriftTwoSource() failed due to:
{noformat}
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.sun.proxy.$Proxy7.<clinit>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:739)
	at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:294)
	at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:185)
	at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:602)
	at org.apache.commons.configuration2.builder.fluent.Configurations.fileParams(Configurations.java:638)
	at org.apache.commons.configuration2.builder.fluent.Configurations.fileBasedBuilder(Configurations.java:164)
	at org.apache.commons.configuration2.builder.fluent.Configurations.propertiesBuilder(Configurations.java:264)
	at org.apache.hadoop.metrics2.impl.MetricsConfig.loadFirst(MetricsConfig.java:115)
	at org.apache.hadoop.metrics2.impl.MetricsConfig.create(MetricsConfig.java:98)
	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:478)
	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:188)
	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:163)
	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:62)
	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:58)
	at org.apache.hadoop.hbase.metrics.BaseSourceImpl$DefaultMetricsSystemInitializer.init(BaseSourceImpl.java:51)
	at org.apache.hadoop.hbase.metrics.BaseSourceImpl.<init>(BaseSourceImpl.java:112)
	at org.apache.hadoop.hbase.metrics.ExceptionTrackingSourceImpl.<init>(ExceptionTrackingSourceImpl.java:42)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceImpl.<init>(MetricsThriftServerSourceImpl.java:59)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceFactoryImpl$FactoryStorage.<init>(MetricsThriftServerSourceFactoryImpl.java:35)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceFactoryImpl$FactoryStorage.<clinit>(MetricsThriftServerSourceFactoryImpl.java:34)
	at org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceFactoryImpl.createThriftOneSource(MetricsThriftServerSourceFactoryImpl.java:47)
	at org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactoryImpl.testCreateThriftOneSource(TestMetricsThriftServerSourceFactoryImpl.java:48)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 52 more
{noformat}
 


> branch-1 does not compile against Hadoop 3.0.0
> ----------------------------------------------
>
>                 Key: HBASE-19421
>                 URL: https://issues.apache.org/jira/browse/HBASE-19421
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.4.0
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>            Priority: Major
>             Fix For: 1.4.0
>
>         Attachments: HBASE-19421-branch-1.patch, org.apache.hadoop.hbase.rest.filter.GZIPRequestStream.png
>
>
> Tested with {{mvn clean install -Dhadoop.profile=3.0 -Dhadoop-three.version=3.0.0-alpha4}}
> {noformat}
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[37,32] package org.apache.hadoop.mapred does not exist
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[38,35] package org.apache.hadoop.mapreduce does not exist
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[117,66] cannot find symbol
> [ERROR]   symbol:   class Job
> [ERROR]   location: class org.apache.hadoop.hbase.security.User
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[129,46] cannot find symbol
> [ERROR]   symbol:   class JobConf
> [ERROR]   location: class org.apache.hadoop.hbase.security.User
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[344,59] cannot find symbol
> [ERROR]   symbol:   class Job
> [ERROR]   location: class org.apache.hadoop.hbase.security.User.SecureHadoopUser
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[369,39] cannot find symbol
> [ERROR]   symbol:   class JobConf
> [ERROR]   location: class org.apache.hadoop.hbase.security.User.SecureHadoopUser
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[351,17] cannot find symbol
> [ERROR]   symbol:   class Job
> [ERROR]   location: class org.apache.hadoop.hbase.security.User.SecureHadoopUser
> [ERROR] /Users/apurtell/src/hbase/hbase-common/src/main/java/org/apache/hadoop/hbase/security/User.java:[375,25] cannot find symbol
> [ERROR]   symbol:   class JobConf
> [ERROR]   location: class org.apache.hadoop.hbase.security.User.SecureHadoopUser
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)