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

Istvan Toth edited comment on PHOENIX-6053 at 4/6/21, 11:43 AM:
----------------------------------------------------------------

The big issue here is that the shaded Hbase client actually has a different 
public API than the standard one:

standard:

{code:java}
Compiled from "Table.java"
public interface org.apache.hadoop.hbase.client.Table extends java.io.Closeable 
{
...
  public <T extends com.google.protobuf.Service, R> java.util.Map<byte[], R> 
coprocessorService(java.lang.Class<T>, byte[], byte[], 
org.apache.hadoop.hbase.client.coprocessor.Batch$Call<T, R>) throws 
com.google.protobuf.ServiceException, java.lang.Throwable;
...
}
{code}

shaded:

{code:java}
Compiled from "Table.java"
public interface org.apache.hadoop.hbase.client.Table extends java.io.Closeable 
{
...
  public <T extends org.apache.hadoop.hbase.shaded.com.google.protobuf.Service, 
R> java.util.Map<byte[], R> coprocessorService(java.lang.Class<T>, byte[], 
byte[], org.apache.hadoop.hbase.client.coprocessor.Batch$Call<T, R>) throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException, 
java.lang.Throwable;
...
}
{code}




was (Author: stoty):
The bug issue here is that the shaded Hbase client actually has a different 
public API than the standard one:

standard:

{code:java}
Compiled from "Table.java"
public interface org.apache.hadoop.hbase.client.Table extends java.io.Closeable 
{
...
  public <T extends com.google.protobuf.Service, R> java.util.Map<byte[], R> 
coprocessorService(java.lang.Class<T>, byte[], byte[], 
org.apache.hadoop.hbase.client.coprocessor.Batch$Call<T, R>) throws 
com.google.protobuf.ServiceException, java.lang.Throwable;
...
}
{code}

shaded:

{code:java}
Compiled from "Table.java"
public interface org.apache.hadoop.hbase.client.Table extends java.io.Closeable 
{
...
  public <T extends org.apache.hadoop.hbase.shaded.com.google.protobuf.Service, 
R> java.util.Map<byte[], R> coprocessorService(java.lang.Class<T>, byte[], 
byte[], org.apache.hadoop.hbase.client.coprocessor.Batch$Call<T, R>) throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException, 
java.lang.Throwable;
...
}
{code}



> Use shaded hadoop-client and hbase-shaded-client in phoenix-client
> ------------------------------------------------------------------
>
>                 Key: PHOENIX-6053
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6053
>             Project: Phoenix
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 5.1.0
>            Reporter: Istvan Toth
>            Assignee: Istvan Toth
>            Priority: Major
>
> The phoenix client is built with the unshaded Hadoop and HBase dependencies, 
> and then relocates some (a lot) of those to declutter the client classpath.
> Try to use hadoop-client and hbase-shaded-client-byo-hadoop instead. (And 
> keep relocating our direct dependecies)
> While this will likely further bloat the thick client JAR, it should 
>  * clean up the classpath further
>  * Would decouple most of the dependencies that Phoenix shares with 
> Hbase/Hadoop from them.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to