hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
Date Tue, 04 Aug 2015 23:55:04 GMT

    [ 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

View raw message