Yes we can't change the guava version in the application. I think hbase-shaded-server and hbase-shaded-client does the same thing of shading guava. I think the problem is hbase-testing-util is bringing again the non-shaded version of hbase-server and hbase-client as part of its dependency. So we need some kind of shaded version of hbase-testing-util which uses the hbase-shaded-server and hbase-shaded-client as its dependency.
On Wed, Jan 24, 2018 at 8:12 PM, Stack <[email protected]> wrote: > On Tue, Jan 23, 2018 at 10:35 PM, Debraj Manna <[email protected]> > wrote: > >> I was getting exceptions like below because of the Guava that is used in >> our application code and the one that is used hbase. >> > > And you can't change your applications guava I presume? The guava's in > hadoop/hbase are prehistoric. We shade guava in hbase-2.0.0 to avoid issues > like the below. > S > > > >> So whenever I am starting minicluster it was throwing exception like below >> >> java.lang.NoSuchMethodError: >> com.google.common.base.Objects.toStringHelper(Ljava/lang/Object;)Lcom/google/common/base/Objects$ToStringHelper; >> >> at >> org.apache.hadoop.metrics2.lib.MetricsRegistry.toString(MetricsRegistry.java:406) >> at java.lang.String.valueOf(String.java:2994) >> at java.lang.StringBuilder.append(StringBuilder.java:131) >> at org.apache.hadoop.ipc.metrics.RpcMetrics.<init>(RpcMetrics.java:74) >> at org.apache.hadoop.ipc.metrics.RpcMetrics.create(RpcMetrics.java:80) >> at org.apache.hadoop.ipc.Server.<init>(Server.java:2252) >> at org.apache.hadoop.ipc.RPC$Server.<init>(RPC.java:1042) >> at >> org.apache.hadoop.ipc.ProtobufRpcEngine$Server.<init>(ProtobufRpcEngine.java:535) >> at >> org.apache.hadoop.ipc.ProtobufRpcEngine.getServer(ProtobufRpcEngine.java:510) >> at org.apache.hadoop.ipc.RPC$Builder.build(RPC.java:887) >> at >> org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.<init>(NameNodeRpcServer.java:341) >> at >> org.apache.hadoop.hdfs.server.namenode.NameNode.createRpcServer(NameNode.java:695) >> at >> org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:672) >> at >> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:838) >> at >> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:817) >> at >> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1538) >> at >> org.apache.hadoop.hdfs.MiniDFSCluster.createNameNode(MiniDFSCluster.java:1114) >> at >> org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetConf(MiniDFSCluster.java:985) >> at >> org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:814) >> at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:745) >> at >> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniDFSCluster(HBaseTestingUtility.java:585) >> at >> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:987) >> at >> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:868) >> at >> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:862) >> at >> org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:806) >> at >> com.vnera.storage.metrics.HBaseTestTableFactory.<init>(HBaseTestTableFactory.java:24) >> at >> com.vnera.storage.metrics.HBaseTests.testCounterTimetamp(HBaseTests.java:70) >> 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.junit.runner.JUnitCore.run(JUnitCore.java:137) >> at >> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) >> at >> com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) >> at >> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) >> at >> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) >> >> >> Using shaded client and server I am not getting the above exception but >> getting the exception which I posted in this query >> >> java.lang.ClassCastException: org.apache.hadoop.hbase.shaded >> .org.mortbay.jetty.servlet.Context$SContext cannot be cast to >> org.mortbay.jetty.handler.ContextHandler$SContext >> at org.mortbay.jetty.servlet.DefaultServlet.init(DefaultServlet.java:154) >> >> >> >> On Tue, Jan 23, 2018 at 8:12 PM, Stack <[email protected]> wrote: >> >>> On Sun, Jan 21, 2018 at 10:33 PM, Debraj Manna <[email protected] >>> > >>> wrote: >>> >>> > Hi >>> > >>> > Is the above exception related to the below open issue >>> > https://issues.apache.org/jira/browse/HBASE-15666 ? >>> > >>> > >>> From the issue, it seems like this combination does not work. You need to >>> use shaded client Debraj? >>> Thanks, >>> S >>> >>> >>> >>> > Thanks, >>> > >>> > On Sun, Jan 21, 2018 at 10:43 PM, Debraj Manna < >>> [email protected]> >>> > wrote: >>> > >>> > > I am trying to use HBaseTestingUtility 1.2 with hbase-shaded-client & >>> > > hbase-shaded-server. It is throwing me the below exception. Can >>> someone >>> > let >>> > > me know how can I avoid this? >>> > > >>> > > java.lang.ClassCastException: org.apache.hadoop.hbase.shaded >>> > > .org.mortbay.jetty.servlet.Context$SContext cannot be cast to >>> > > org.mortbay.jetty.handler.ContextHandler$SContext >>> > > at org.mortbay.jetty.servlet.DefaultServlet.init( >>> > DefaultServlet.java:154) >>> > > at javax.servlet.GenericServlet.init(GenericServlet.java:241) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.servlet.Ser >>> > > vletHolder.initServlet(ServletHolder.java:440) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.servlet.Ser >>> > > vletHolder.doStart(ServletHolder.java:263) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.component.Abstrac >>> > > tLifeCycle.start(AbstractLifeCycle.java:50) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.servlet.Ser >>> > > vletHandler.initialize(ServletHandler.java:736) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.servlet.Con >>> > > text.startContext(Context.java:140) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.webapp.WebA >>> > > ppContext.startContext(WebAppContext.java:1282) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.handler.Con >>> > > textHandler.doStart(ContextHandler.java:519) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.webapp.WebA >>> > > ppContext.doStart(WebAppContext.java:499) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.component.Abstrac >>> > > tLifeCycle.start(AbstractLifeCycle.java:50) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.handler.Han >>> > > dlerCollection.doStart(HandlerCollection.java:152) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.handler.Con >>> > > textHandlerCollection.doStart(ContextHandlerCollection.java:156) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.component.Abstrac >>> > > tLifeCycle.start(AbstractLifeCycle.java:50) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.handler.Han >>> > > dlerWrapper.doStart(HandlerWrapper.java:130) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.jetty.Server.doSt >>> > > art(Server.java:224) >>> > > at org.apache.hadoop.hbase.shaded.org.mortbay.component.Abstrac >>> > > tLifeCycle.start(AbstractLifeCycle.java:50) >>> > > at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:900) >>> > > at org.apache.hadoop.hdfs.server.namenode.NameNodeHttpServer.st >>> > > art(NameNodeHttpServer.java:142) >>> > > at org.apache.hadoop.hdfs.server.namenode.NameNode.startHttpSer >>> > > ver(NameNode.java:774) >>> > > at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(N >>> > > ameNode.java:667) >>> > > at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameN >>> > > ode.java:838) >>> > > at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameN >>> > > ode.java:817) >>> > > at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNo >>> > > de(NameNode.java:1538) >>> > > at org.apache.hadoop.hdfs.MiniDFSCluster.createNameNode(MiniDFS >>> > > Cluster.java:1114) >>> > > at org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetC >>> > > onf(MiniDFSCluster.java:985) >>> > > at org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(Min >>> > > iDFSCluster.java:814) >>> > > at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster. >>> java:745) >>> > > at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniDFSClus >>> > > ter(HBaseTestingUtility.java:585) >>> > > at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster >>> > > (HBaseTestingUtility.java:987) >>> > > at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster >>> > > (HBaseTestingUtility.java:868) >>> > > at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster >>> > > (HBaseTestingUtility.java:862) >>> > > at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster >>> > > (HBaseTestingUtility.java:806) >>> > > at com.vnera.storage.metrics.HBaseTestTableFactory.<init>(HBase >>> > > TestTableFactory.java:25) >>> > > at com.vnera.storage.metrics.HBaseTests.testCounterTimetamp(HBa >>> > > seTests.java:70) >>> > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> > > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >>> > > ssorImpl.java:62) >>> > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >>> > > thodAccessorImpl.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(Refl >>> > > ectiveCallable.java:12) >>> > > at org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr >>> > > ameworkMethod.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(BlockJUnit >>> > > 4ClassRunner.java:78) >>> > > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit >>> > > 4ClassRunner.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.junit.runner.JUnitCore.run(JUnitCore.java:137) >>> > > at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs >>> > > (JUnit4IdeaTestRunner.java:68) >>> > > at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.star >>> > > tRunnerWithArgs(IdeaTestRunner.java:47) >>> > > at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsA >>> > > ndStart(JUnitStarter.java:242) >>> > > at com.intellij.rt.execution.junit.JUnitStarter.main( >>> > JUnitStarter.java:70) >>> > > >>> > > >>> > >>> >> >> >
