[
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)