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

Andrew Purtell edited comment on HBASE-13706 at 8/4/15 11:55 PM:
-----------------------------------------------------------------

bq. no good reason [to exempt the Hadoop classes]
bq. The logic will be that all HBase classes and all their dependencies will be 
loaded by native/parent loader.All co-processor implementation classes and 
their dependencies will be loaded by the CoprocessorClassLoader, unless they 
spill over.

We could try only org.apache.hadoop.hbase.*. 

The subset of the Hadoop APIs relevant and useful for coprocessors is pretty 
big, there could be unexpected/unintended consequences. If not going through a 
facade in org.apache.hadoop.hbase.* whatever objects the coprocessor 
instantiates and interacts with will not have access to static shared state 
like UGI, the metrics subsystem registry, the FileSystem instance cache, etc. 
Working with HDFS, metrics, and security APIs would be "interesting". We could 
try it only in master for a while. We could claim such things out of scope for 
coprocessors, but because we haven't up to now, it's a hairy backwards 
compatibility problem.



was (Author: apurtell):
bq. no good reason [to exempt the Hadoop classes]
bq. The logic will be that all HBase classes and all their dependencies will be 
loaded by native/parent loader.
All co-processor implementation classes and their dependencies will be loaded 
by the CoprocessorClassLoader, unless they spill over.

We could try only org.apache.hadoop.hbase.*. 

The subset of the Hadoop APIs relevant and useful for coprocessors is pretty 
big, there could be unexpected/unintended consequences. If not going through a 
facade in org.apache.hadoop.hbase.* whatever objects the coprocessor 
instantiates and interacts with will not have access to static shared state 
like UGI, the metrics subsystem registry, the FileSystem instance cache, etc. 
Working with HDFS, metrics, and security APIs would be "interesting". We could 
try it only in master for a while. We could claim such things out of scope for 
coprocessors, but because we haven't up to now, it's a hairy backwards 
compatibility problem.


> CoprocessorClassLoader should not exempt Hive classes
> -----------------------------------------------------
>
>                 Key: HBASE-13706
>                 URL: https://issues.apache.org/jira/browse/HBASE-13706
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors
>    Affects Versions: 2.0.0, 1.0.1, 1.1.0, 0.98.12
>            Reporter: Jerry He
>            Assignee: Jerry He
>            Priority: Minor
>             Fix For: 2.0.0, 0.98.14, 1.0.2, 1.1.3
>
>         Attachments: HBASE-13706.patch
>
>
> CoprocessorClassLoader is used to load classes from the coprocessor jar.
> Certain classes are exempt from being loaded by this ClassLoader, which means 
> they will be ignored in the coprocessor jar, but loaded from parent classpath 
> instead.
> One problem is that we categorically exempt "org.apache.hadoop".
> But it happens that Hive packages start with "org.apache.hadoop".
> There is no reason to exclude hive classes from theCoprocessorClassLoader.
> HBase does not even include Hive jars.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to