You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Bhavik Patel (Jira)" <ji...@apache.org> on 2023/04/24 11:19:00 UTC

[jira] [Comment Edited] (RANGER-4201) Hbase master can't start due to ranger-hbase-plugin jersey jar conflict

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

Bhavik Patel edited comment on RANGER-4201 at 4/24/23 11:18 AM:
----------------------------------------------------------------

Kindly check : https://issues.apache.org/jira/browse/RANGER-4176

We are not observing any such error, can you compare the plugins lib tree with below. 
{code:java}
total 40372
-rw-r--r--. 1 root root  8632395 Apr 20 06:54 eclipselink-2.5.2.jar
-rw-r--r--. 1 root root 13052737 Apr 20 06:54 elasticsearch-7.10.2.jar
-rw-r--r--. 1 root root    60064 Apr 20 06:54 elasticsearch-core-7.10.2.jar
-rw-r--r--. 1 root root    66224 Apr 20 06:54 elasticsearch-rest-client-7.10.2.jar
-rw-r--r--. 1 root root  1682704 Apr 20 06:54 elasticsearch-rest-high-level-client-7.10.2.jar
-rw-r--r--. 1 root root   142972 Apr 20 06:54 elasticsearch-x-content-7.10.2.jar
-rw-r--r--. 1 root root     4179 Apr 20 06:54 gethostname4j-0.0.2.jar
-rw-r--r--. 1 root root  2747878 Apr 20 06:54 guava-27.0-jre.jar
-rw-r--r--. 1 root root  1193515 Apr 20 06:54 hppc-0.8.0.jar
-rw-r--r--. 1 root root   179964 Apr 20 06:54 httpasyncclient-4.1.4.jar
-rw-r--r--. 1 root root    41790 Apr 20 06:54 httpmime-4.5.13.jar
-rw-r--r--. 1 root root   162126 Apr 20 06:54 javax.persistence-2.1.0.jar
-rw-r--r--. 1 root root   133824 Apr 20 06:54 jersey-client-1.19.3.jar
-rw-r--r--. 1 root root   434518 Apr 20 06:54 jersey-core-1.19.3.jar
-rw-r--r--. 1 root root   704349 Apr 20 06:54 jersey-server-1.19.3.jar
-rw-r--r--. 1 root root   327914 Apr 20 06:54 jetty-client-9.4.49.v20220914.jar
-rw-r--r--. 1 root root  1488769 Apr 20 06:54 jna-5.2.0.jar
-rw-r--r--. 1 root root  2527218 Apr 20 06:54 jna-platform-5.2.0.jar
-rw-r--r--. 1 root root   643778 Apr 20 06:54 joda-time-2.10.6.jar
-rw-r--r--. 1 root root    63705 Apr 20 06:54 lang-mustache-client-7.10.2.jar
-rw-r--r--. 1 root root  3300764 Apr 20 06:54 lucene-core-8.4.0.jar
-rw-r--r--. 1 root root   101913 Apr 20 06:54 ranger-hbase-plugin-2.1.0.3.2.2.4-1.jar
-rw-r--r--. 1 root root   210461 Apr 20 06:54 ranger-plugins-audit-2.1.0.3.2.2.4-1.jar
-rw-r--r--. 1 root root   896800 Apr 20 06:54 ranger-plugins-common-2.1.0.3.2.2.4-1.jar
-rw-r--r--. 1 root root    20368 Apr 20 06:54 ranger-plugins-cred-2.1.0.3.2.2.4-1.jar
-rw-r--r--. 1 root root    82835 Apr 20 06:54 rank-eval-client-7.10.2.jar
-rw-r--r--. 1 root root  2391561 Apr 20 06:54 solr-solrj-8.11.2.jar {code}


was (Author: bpatel):
This is already fixed and available in RANAGER-3.0.0

Kindly check : https://issues.apache.org/jira/browse/RANGER-4176

 

> Hbase master can't start due to  ranger-hbase-plugin jersey jar conflict
> ------------------------------------------------------------------------
>
>                 Key: RANGER-4201
>                 URL: https://issues.apache.org/jira/browse/RANGER-4201
>             Project: Ranger
>          Issue Type: Bug
>          Components: Ranger
>    Affects Versions: 2.3.0, 2.4.0
>            Reporter: caijialiang
>            Priority: Major
>
> hbase version 2.4.13
> ranger version 2.4
> hbase  master can't start after installed ranger-hbase-plugin 
>  
> {code:java}
> ERROR [master/gs-server-13481:16000:becomeActiveMaster] master.HMaster: ***** ABORTING master gs-server-13481,16000,1681377561702: The coprocessor org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor threw java.lang.ExceptionInIniti
> alizerError *****
> java.lang.ExceptionInInitializerError
>         at com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:182)
>         at com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:175)
>         at com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:162)
>         at com.sun.jersey.api.client.Client.init(Client.java:343)
>         at com.sun.jersey.api.client.Client.access$000(Client.java:119)
>         at com.sun.jersey.api.client.Client$1.f(Client.java:192)
>         at com.sun.jersey.api.client.Client$1.f(Client.java:188)
>         at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
>         at com.sun.jersey.api.client.Client.<init>(Client.java:188)
>         at com.sun.jersey.api.client.Client.<init>(Client.java:171)
>         at com.sun.jersey.api.client.Client.create(Client.java:683)
>         at org.apache.ranger.plugin.util.RangerRESTClient.buildClient(RangerRESTClient.java:228)
>         at org.apache.ranger.plugin.util.RangerRESTClient.getClient(RangerRESTClient.java:193)
>         at org.apache.ranger.plugin.util.RangerRESTClient.get(RangerRESTClient.java:473)
>         at org.apache.ranger.admin.client.RangerAdminRESTClient.getRangerRolesDownloadResponse(RangerAdminRESTClient.java:1340)
>         at org.apache.ranger.admin.client.RangerAdminRESTClient.getRolesIfUpdatedWithCred(RangerAdminRESTClient.java:1202)
>         at org.apache.ranger.admin.client.RangerAdminRESTClient.getRolesIfUpdated(RangerAdminRESTClient.java:167)
>         at org.apache.ranger.plugin.util.RangerRolesProvider.loadUserGroupRolesFromAdmin(RangerRolesProvider.java:183)
>         at org.apache.ranger.plugin.util.RangerRolesProvider.loadUserGroupRoles(RangerRolesProvider.java:123)
>         at org.apache.ranger.plugin.util.PolicyRefresher.loadRoles(PolicyRefresher.java:495)
>         at org.apache.ranger.plugin.util.PolicyRefresher.startRefresher(PolicyRefresher.java:144)
>         at org.apache.ranger.plugin.service.RangerBasePlugin.init(RangerBasePlugin.java:245)
>         at org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.start(RangerAuthorizationCoprocessor.java:1120)
>         at org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.start(RangerAuthorizationCoprocessor.java:160)
>         at org.apache.hadoop.hbase.coprocessor.BaseEnvironment.startup(BaseEnvironment.java:69)
>         at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.checkAndLoadInstance(CoprocessorHost.java:285)
>         at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadSystemCoprocessors(CoprocessorHost.java:171)
>         at org.apache.hadoop.hbase.master.MasterCoprocessorHost.<init>(MasterCoprocessorHost.java:155)
>         at org.apache.hadoop.hbase.master.HMaster.initializeCoprocessorHost(HMaster.java:3870)
>         at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:902)
>         at org.apache.hadoop.hbase.master.HMaster.startActiveMasterManager(HMaster.java:2175)
>         at org.apache.hadoop.hbase.master.HMaster.lambda$run$0(HMaster.java:520)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl
>         at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:130)
>         at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:97)
>         at javax.ws.rs.core.MediaType.valueOf(MediaType.java:172)
>         at com.sun.jersey.core.header.MediaTypes.<clinit>(MediaTypes.java:65)
>         ... 33 more
> Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl
>         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)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:264)
>         at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:87)
>         at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:185)
>         at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:112)
>         ... 36 more
>  {code}
>  
> The HBase library depends on the javax.ws.rs-api-2.1.1.jar which loads the org.glassfish.jersey.internal.RuntimeDelegateImpl class. However, this class is only available in the Jersey 2 library. Therefore, when the HBase Ranger plugin includes the jersey-client and jersey-core 1.x libraries, it pollutes the HBase RuntimeDelegate loading.
>  
> This issue is described in the HBase issue tracker: https://issues.apache.org/jira/browse/HBASE-22052
>  
> To reproduce this issue, install the HBase Ranger plugins for Ranger 2.4 on HBase 2.x and enable the Ranger plugin by adding the following configuration properties: hbase.coprocessor.master.classes org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor
> hbase.coprocessor.region.classes  org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor
> hbase.coprocessor.regionserver.classes org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor Then, restart the HBase cluster.
> Solution: When packaging hbase-agent in the distro module, modify the assembly descriptor file src/main/assembly/hbase-agent.xml of hbase-agent. Remove jersey core and jersey client from the includes section so that hbase 2 can load its own jersey2-related packages.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)