Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-12903

Fix configuration which enables secure bulk load

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.98.6, 2.0.0
    • 2.0.0
    • Coprocessors, documentation
    • None
    • Reviewed

    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>
      

      Attachments

        1. HBASE-12903-v2.patch
          0.7 kB
          Weichen Ye
        2. HBASE-12903-v3.patch
          0.8 kB
          Weichen Ye

        Activity

          People

            yeweichen Weichen Ye
            yeweichen Weichen Ye
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: