HBase – Scan
HBase – Scan
Scaning using HBase Shell
The scan command is used to view the data in HTable. Using the scan command, you can get the table data. Its syntax is as follows:
scan ‘<table name>’
Example
The following example shows how to read data from a table using the scan command. Here we are reading the emp table.
hbase(main):010:0> scan 'emp' ROW COLUMN &plus CELL 1 column = personal data:city, timestamp = 1417521848375, value = hyderabad 1 column = personal data:name, timestamp = 1417521785385, value = ramu 1 column = professional data:designation, timestamp = 1417585277,value = manager 1 column = professional data:salary, timestamp = 1417521903862, value = 50000 1 row(s) in 0.0370 seconds
Scanning Using Java API
The complete program to scan the entire table data using java API is as follows.
import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; public class ScanTable{ public static void main(String args[]) throws IOException{ // Instantiating Configuration class Configuration config = HBaseConfiguration.create(); // Instantiating HTable class HTable table = new HTable(config, "emp"); // Instantiating the Scan class Scan scan = new Scan(); // Scanning the required columns scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("name")); scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("city")); // Getting the scan result ResultScanner scanner = table.getScanner(scan); // Reading values from scan result for (Result result = scanner.next(); result != null; result = scanner.next()) System.out.println("Found row : " + result); //closing the scanner scanner.close(); } }
Compile and execute the above program as shown below.
$javac ScanTable.java $java ScanTable
The following should be the output:
Found row : keyvalues={row1/personal:city/1418275612888/Put/vlen=5/mvcc=0, row1/personal:name/1418035791555/Put/vlen=4/mvcc=0}