Using a Secondary Index

Scenario

HIndex enables HBase indexing based on specific column values, making the retrieval of data highly efficient and fast.

Constraints

Procedure

  1. Install the HBase client. For details, see Using an HBase Client.
  2. Go to the client installation directory, for example, /opt/client.

    cd /opt/client

  3. Run the following command to configure environment variables:

    source bigdata_env

  4. If the cluster is in security mode, run the following command to authenticate the user. In normal mode, user authentication is not required.

    kinit Component service user

  5. Run the following command to access HIndex:

    hbase org.apache.hadoop.hbase.hindex.mapreduce.TableIndexer

    Table 1 Common HIndex commands

    Description

    Command

    Add Index

    TableIndexer-Dtablename.to.index=table1-Dindexspecs.to.add='IDX1=>cf1:[q1->datatype],[q2],[q3];cf2:[q1->datatype],[q2->datatype]#IDX2=>cf1:[q5]'

    Create Index

    TableIndexer -Dtablename.to.index=table1 -Dindexnames.to.build='IDX1#IDX2'

    Delete Index

    TableIndexer -Dtablename.to.index=table1 -Dindexnames.to.drop='IDX1#IDX2'

    Disable Index

    TableIndexer -Dtablename.to.index=table1 -Dindexnames.to.disable='IDX1#IDX2'

    Add and Create Index

    TableIndexer -Dtablename.to.index=table1 -Dindexspecs.to.add='IDX1=>cf1:[q1->datatype],[q2],[q3];cf2:[q1->datatype],[q2->datatype]#IDX2=>cf1:[q5] -Dindexnames.to.build='IDX1'

    Create Index for a Single Region

    TableIndexer -Dtablename.to.index=table1 -Dregion.to.index=regionEncodedName -Dindexnames.to.build='IDX1#IDX2'

    • IDX1: indicates the index name.
    • cf1: indicates the column family name.
    • q1: indicates the column name.
    • datatype: indicates the data type, including String, Integer, Double, Float, Long, Short, Byte and Char.