You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2015/08/05 01:55:04 UTC

[jira] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes

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

Andrew Purtell commented on HBASE-13706:
----------------------------------------

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)