hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jerry He (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
Date Tue, 21 Jul 2015 20:58:05 GMT

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

Jerry He commented on HBASE-13706:
----------------------------------

Hi, [~apurtell]

Thanks for the comment.
This is a list for hadoop common and hdfs I come up with. hadoop version 2.6.0 and HBase version
1.1.1. These packages appear directly in the HBase 'import'
{noformat}
org.apache.hadoop.security
org.apache.hadoop.HadoopIllegalArgumentException
org.apache.hadoop.conf
org.apache.hadoop.fs
org.apache.hadoop.http
org.apache.hadoop.io
org.apache.hadoop.ipc
org.apache.hadoop.metrics
org.apache.hadoop.metrics2
org.apache.hadoop.net
org.apache.hadoop.util
org.apache.hadoop.hdfs
{noformat}

Still, looking at the code further.  I think the custom co-processor class loader is pretty
separated from the native class loading. In other words, classpath isolation is well provided.
This applies to the dependencies as well as the main co-processor class (of course this requires
that the co-processor implementation jar to be self-contained).

Maybe I am wrong, but I see a good reason to exempt the hadoop classes.
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.
It looks more like a limitation without fully making use of the classpath isolation provided
by co-processor class loader.

> 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.2
>
>         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)

Mime
View raw message