[ 
https://issues.apache.org/jira/browse/HBASE-12903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Weichen Ye updated HBASE-12903:
-------------------------------
    Description: 
In Section "62.5. Secure Bulk Load", the doc tell us to enable secure bulkload 
with the configuration:

<property>
<name>hbase.coprocessor.regionserver.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
</property>

When we set the configuration like this, the regionserver can not start due to 
this ERROR:

2015-01-22 15:55:46,395 FATAL 
org.apache.hadoop.hbase.regionserver.HRegionServer: ABORTING region server 
hadoop-node-xxxxx: The coprocessor 
org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint threw 
java.lang.ClassCastException: 
org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost$RegionServerEnvironment
 can not be cast to 
org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment
java.lang.ClassCastException: 
org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost$RegionServerEnvironment
 cannot be cast to 
org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment
        at 
org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint.start(SecureBulkLoadEndpoint.java:125)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost$Environment.startup(CoprocessorHost.java:673)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadInstance(CoprocessorHost.java:265)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadSystemCoprocessors(CoprocessorHost.java:168)
        at 
org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.<init>(RegionServerCoprocessorHost.java:46)
        at 
org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:883)
        at java.lang.Thread.run(Thread.java:745)



In source code org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint 
we can see, the environment for this coprocessor is 
"RegionCoprocessorEnvironment". So the coprocessor "SecureBulkLoadEndpoint" 
should be put into "hbase.coprocessor.region.classes", instead of 
"hbase.coprocessor.regionserver.classes"


The correct configuration to enable secure bulk load is:

<property>
<name>hbase.coprocessor.region.classes</name>  
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
</property>



  was:
In Section "62.5. Secure Bulk Load", the doc tell us to enable secure bulkload 
with the configuration:

<property>
<name>hbase.coprocessor.regionserver.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
</property>

When we set the configuration like this, the regionserver can not start due to 
this ERROR:

2015-01-22 15:55:46,395 FATAL 
org.apache.hadoop.hbase.regionserver.HRegionServer: ABORTING region server 
hadoop-node-xxxxx: The coprocessor org.apache.hado
op.hbase.security.access.SecureBulkLoadEndpoint threw 
java.lang.ClassCastException: 
org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost$RegionServerEnvironment
 can not be cast to 
org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment
java.lang.ClassCastException: 
org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost$RegionServerEnvironment
 cannot be cast to 
org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment
        at 
org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint.start(SecureBulkLoadEndpoint.java:125)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost$Environment.startup(CoprocessorHost.java:673)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadInstance(CoprocessorHost.java:265)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadSystemCoprocessors(CoprocessorHost.java:168)
        at 
org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.<init>(RegionServerCoprocessorHost.java:46)
        at 
org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:883)
        at java.lang.Thread.run(Thread.java:745)



In org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint we can see, 
the environment for this coprocessor is: 
 private RegionCoprocessorEnvironment env;
The coprocessor "SecureBulkLoadEndpoint" should be put into 
"hbase.coprocessor.region.classes", instead of 
"hbase.coprocessor.regionserver.classes"


So, the correct configuration to enable secure bulk load is:t 

<property>
<name>hbase.coprocessor.region.classes</name>  
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
</property>




> Wrong Configuration in doc to enable secure bulk load
> -----------------------------------------------------
>
>                 Key: HBASE-12903
>                 URL: https://issues.apache.org/jira/browse/HBASE-12903
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors, documentation
>    Affects Versions: 2.0.0, 0.98.6
>            Reporter: Weichen Ye
>            Assignee: Weichen Ye
>
> In Section "62.5. Secure Bulk Load", the doc tell us to enable secure 
> bulkload with the configuration:
> <property>
> <name>hbase.coprocessor.regionserver.classes</name>
> <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
> </property>
> When we set the configuration like this, the regionserver can not start due 
> to this ERROR:
> 2015-01-22 15:55:46,395 FATAL 
> org.apache.hadoop.hbase.regionserver.HRegionServer: ABORTING region server 
> hadoop-node-xxxxx: The coprocessor 
> org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint threw 
> java.lang.ClassCastException: 
> org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost$RegionServerEnvironment
>  can not be cast to 
> org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment
> java.lang.ClassCastException: 
> org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost$RegionServerEnvironment
>  cannot be cast to 
> org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment
>         at 
> org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint.start(SecureBulkLoadEndpoint.java:125)
>         at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost$Environment.startup(CoprocessorHost.java:673)
>         at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadInstance(CoprocessorHost.java:265)
>         at 
> org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadSystemCoprocessors(CoprocessorHost.java:168)
>         at 
> org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.<init>(RegionServerCoprocessorHost.java:46)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:883)
>         at java.lang.Thread.run(Thread.java:745)
> In source code org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint 
> we can see, the environment for this coprocessor is 
> "RegionCoprocessorEnvironment". So the coprocessor "SecureBulkLoadEndpoint" 
> should be put into "hbase.coprocessor.region.classes", instead of 
> "hbase.coprocessor.regionserver.classes"
> The correct configuration to enable secure bulk load is:
> <property>
> <name>hbase.coprocessor.region.classes</name>  
> <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint</value>
> </property>



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

Reply via email to