Quickstart using HBase Shell

This page explains how to use the HBase shell to connect to a Cloud Bigtable instance, perform basic administrative tasks, and read and write data in a table.

If you do not want to use the HBase shell, you can follow the quickstart using the cbt command instead.

Before you begin

  1. In the Cloud Console, on the project selector page, select or create a Cloud project.

    Go to the project selector page

  2. Make sure that billing is enabled for your Google Cloud project. Learn how to confirm billing is enabled for your project.

  3. Enable the Cloud Bigtable and Cloud Bigtable Admin APIs.

    Enable the APIs

Create a Cloud Bigtable instance

  1. Open the Create Instance page in the Google Cloud Console.

    Open the Create Instance page

    Screenshot of the "Create instance" page

  2. For Instance name, enter Quickstart instance.

  3. For Instance ID, enter quickstart-instance.

  4. For Storage type, select SSD.

  5. For Cluster ID, enter quickstart-instance-c1.

  6. For Region, select us-east1.

  7. For Zone, select us-east1-c.

  8. Click Create to create the instance.

Connect to your instance

  1. Open a terminal window in Cloud Shell.

    Open in Cloud Shell

  2. To use the HBase shell with the Cloud Bigtable HBase client for Java, you must install a Java 8 runtime environment. Other versions of Java are not supported. Install and setup the Java 8 environment by running the following commands:

    sudo apt-get update
    sudo apt-get install openjdk-8-jdk-headless
    export JAVA_HOME=$(update-alternatives --list java | tail -1 | sed -E 's/\/bin\/java//')
  3. Clone the repository that contains the HBase shell files, then change to the directory for the HBase shell:

    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git
    cd cloud-bigtable-examples/quickstart
  4. Start the HBase shell:


Now you're connected!

Read and write data

Cloud Bigtable stores data in tables, which contain rows. Each row is identified by a row key.

Data in a row is organized into column families, which are groups of columns. A column qualifier identifies a single column within a column family.

There can be multiple time-stamped versions of the value at the intersection of a row and column. Each version is referred to as a cell.

  1. Create a table named my-table, with one column family named cf1:

    create 'my-table', 'cf1'

    The shell displays output similar to the following:

    0 row(s) in 1.5210 seconds
    => Hbase::Table - my-table
  2. List your tables:


    The shell displays output similar to the following:

    1 row(s) in 1.3580 seconds
    => ["my-table"]
  3. Put the value test-value in the row r1, using the column family cf1 and the column qualifier c1:

    put 'my-table', 'r1', 'cf1:c1', 'test-value'
  4. Use the scan command to scan the table and read the data you added:

    scan 'my-table'

    The shell displays output similar to the following:

     r1      column=cf1:c1, timestamp=1430687836046, value=test-value
    1 row(s) in 0.6260 seconds
  5. Delete the table my-table:

    disable 'my-table'
    drop 'my-table'
  6. Type exit and press Enter to exit the HBase shell. You will see a series of log messages after you exit, which is normal.

Clean up

To avoid incurring charges to your Google Cloud account for the resources used in this quickstart, follow these steps.

  1. Open the list of Cloud Bigtable instances in the Cloud Console.

    Open the instance list

  2. Click Quickstart instance.
  3. Click Delete instance.

    Screenshot of the
    'Delete instance' pane

  4. Type quickstart-instance, then click Delete to delete the instance.

What's next