describe
This command returns the description of the table. Its syntax is as follows:
hbase> describe 'table name'
Given below is the output of the describe command on the emp table.
hbase(main):006:0> describe 'emp' DESCRIPTION ENABLED 'emp', {NAME β 'READONLY', DATA_BLOCK_ENCODING β 'NONE', BLOOMFILTER β 'ROW', REPLICATION_SCOPE β '0', COMPRESSION β 'NONE', VERSIONS β '1', TTL true β 'FOREVER', MIN_VERSIONS β '0', KEEP_DELETED_CELLS β 'false', BLOCKSIZE β '65536', IN_MEMORY β 'false', BLOCKCACHE β 'true'}, {NAME β 'personal data', DATA_BLOCK_ENCODING β 'NONE', BLOOMFILTER β 'ROW', REPLICATION_SCOPE β '0', VERSIONS β '5', COMPRESSION β 'NONE', MIN_VERSIONS β '0', TTL β 'FOREVER', KEEP_DELETED_CELLS β 'false', BLOCKSIZE β '65536', IN_MEMORY β 'false', BLOCKCACHE β 'true'}, {NAME β 'professional data', DATA_BLO CK_ENCODING β 'NONE', BLOOMFILTER β 'ROW', REPLICATION_SCOPE β '0', VERSIONS β '1', COMPRESSION β 'NONE', MIN_VERSIONS β '0', TTL β 'FOREVER', K EEP_DELETED_CELLS β 'false', BLOCKSIZE β '65536', IN_MEMORY β 'false', BLOCKCACHE β 'true'}, {NAME β 'table_att_unset', DATA_BLOCK_ENCODING β 'NO NE', BLOOMFILTER β 'ROW', REPLICATION_SCOPE β '0', COMPRESSION β 'NONE', VERSIONS β '1', TTL β 'FOREVER', MIN_VERSIONS β '0', KEEP_DELETED_CELLS β 'false', BLOCKSIZE β '6
alter
Alter is the command used to make changes to an existing table. Using this command, you can change the maximum number of cells of a column family, set and delete table scope operators, and delete a column family from a table.
Changing the Maximum Number of Cells of a Column Family
Given below is the syntax to change the maximum number of cells of a column family.
hbase> alter 't1', NAME β 'f1', VERSIONS β 5
In the following example, the maximum number of cells is set to 5.
hbase(main):003:0> alter 'emp', NAME β 'personal data', VERSIONS β 5 Updating all regions with the new schema... 0/1 regions updated. 1/1 regions updated. Done. 0 row(s) in 2.3050 seconds
Table Scope Operators
Using alter, you can set and remove table scope operators such as MAX_FILESIZE, READONLY, MEMSTORE_FLUSHSIZE, DEFERRED_LOG_FLUSH, etc.
Setting Read Only
Below given is the syntax to make a table read only.
hbase>alter 't1', READONLY(option)
In the following example, we have made the emp table read only.
hbase(main):006:0> alter 'emp', READONLY Updating all regions with the new schema... 0/1 regions updated. 1/1 regions updated. Done. 0 row(s) in 2.2140 seconds
Removing Table Scope Operators
We can also remove the table scope operators. Given below is the syntax to remove βMAX_FILESIZEβ from emp table.
hbase> alter 't1', METHOD β 'table_att_unset', NAME β 'MAX_FILESIZE'
Deleting a Column Family
Using alter, you can also delete a column family. Given below is the syntax to delete a column family using alter.
hbase> alter β table name β, βdeleteβ β β column family β
Given below is an example to delete a column family from the βempβ table.
Assume there is a table named employee in HBase. It contains the following data:
hbase(main):006:0> scan 'employee' ROW COLUMN+CELL row1 column = personal:city, timestamp = 1418193767, value = hyderabad row1 column = personal:name, timestamp = 1418193806767, value = raju row1 column = professional:designation, timestamp = 1418193767, value = manager row1 column = professional:salary, timestamp = 1418193806767, value = 50000 1 row(s) in 0.0160 seconds
Now let us delete the column family named professional using the alter command.
hbase(main):007:0> alter 'employee','delete'β'professional' Updating all regions with the new schema... 0/1 regions updated. 1/1 regions updated. Done. 0 row(s) in 2.2380 seconds
Now verify the data in the table after alteration. Observe the column family βprofessionalβ is no more, since we have deleted it.
hbase(main):003:0> scan 'employee' ROW COLUMN + CELL row1 column = personal:city, timestamp = 14181936767, value = hyderabad row1 column = personal:name, timestamp = 1418193806767, value = raju 1 row(s) in 0.0830 seconds
Adding a Column Family Using Java API
You can add a column family to a table using the method addColumn() of HBAseAdmin class. Follow the steps given below to add a column family to a table.
Step 1
Instantiate the HBaseAdmin class.
// Instantiating configuration object Configuration conf = HBaseConfiguration.create(); // Instantiating HBaseAdmin class HBaseAdmin admin = new HBaseAdmin(conf);
Step 2
The addColumn() method requires a table name and an object of HColumnDescriptor class. Therefore instantiate the HColumnDescriptor class. The constructor of HColumnDescriptor in turn requires a column family name that is to be added. Here we are adding a column family named βcontactDetailsβ to the existing βemployeeβ table.
// Instantiating columnDescriptor object HColumnDescriptor columnDescriptor = new HColumnDescriptor("contactDetails");
Step 3
Add the column family using addColumn method. Pass the table name and the HColumnDescriptor class object as parameters to this method.
// Adding column family admin.addColumn("employee", new HColumnDescriptor("columnDescriptor"));
Given below is the complete program to add a column family to an existing table.
import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.client.HBaseAdmin; public class AddColoumn{ public static void main(String args[]) throws MasterNotRunningException, IOException{ // Instantiating configuration class. Configuration conf = HBaseConfiguration.create(); // Instantiating HBaseAdmin class. HBaseAdmin admin = new HBaseAdmin(conf); // Instantiating columnDescriptor class HColumnDescriptor columnDescriptor = new HColumnDescriptor("contactDetails"); // Adding column family admin.addColumn("employee", columnDescriptor); System.out.println("coloumn added"); } }
Compile and execute the above program as shown below.
$javac AddColumn.java $java AddColumn
The above compilation works only if you have set the classpath in β .bashrc β. If you haven’t, follow the procedure given below to compile your .java file.
//if "/home/home/hadoop/hbase " is your Hbase home folder then. $javac -cp /home/hadoop/hbase/lib/*: Demo.java
If everything goes well, it will produce the following output:
column added
Deleting a Column Family Using Java API
You can delete a column family from a table using the method deleteColumn() of HBAseAdmin class. Follow the steps given below to add a column family to a table.
Step1
Instantiate the HBaseAdmin class.
// Instantiating configuration object Configuration conf = HBaseConfiguration.create(); // Instantiating HBaseAdmin class HBaseAdmin admin = new HBaseAdmin(conf);
Step2
Add the column family using deleteColumn() method. Pass the table name and the column family name as parameters to this method.
// Deleting column family admin.deleteColumn("employee", "contactDetails");
Given below is the complete program to delete a column family from an existing table.
import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.client.HBaseAdmin; public class DeleteColoumn{ public static void main(String args[]) throws MasterNotRunningException, IOException{ // Instantiating configuration class. Configuration conf = HBaseConfiguration.create(); // Instantiating HBaseAdmin class. HBaseAdmin admin = new HBaseAdmin(conf); // Deleting a column family admin.deleteColumn("employee","contactDetails"); System.out.println("coloumn deleted"); } }
Compile and execute the above program as shown below.
$javac DeleteColumn.java $java DeleteColumn
The following should be the output:
column deleted
Next Topic:-Click Here
Many thanks to you for sharing most of these wonderful content. In addition, the perfect travel and medical insurance strategy can often ease those concerns that come with traveling abroad. A new medical emergency can soon become very costly and that’s guaranteed to quickly put a financial weight on the family’s finances. Putting in place the suitable travel insurance package deal prior to leaving is well worth the time and effort. Thanks