介绍
scan 命令用于查看HTable数据。使用 scan 命令可以得到表中的数据。它的语法如下:
scan ‘<table name>’
下面的示例演示了如何使用scan命令从表中读取数据。在这里读取的是emp表。
hbase(main):010:0> scan 'emp'ROW COLUMN+CELL1 column=personal data:city, timestamp=1417521848375, value=hyderabad1 column=personal data:name, timestamp=1417521785385, value=ramu1 column=professional data:designation, timestamp=1417585277,value=manager1 column=professional data:salary, timestamp=1417521903862, value=500001 row(s) in 0.0370 seconds
使用Java API扫描
使用Java API扫描整个表的数据的完整程序如下:
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 classConfiguration config = HBaseConfiguration.create();// Instantiating HTable classHTable table = new HTable(config, "emp");// Instantiating the Scan classScan scan = new Scan();// Scanning the required columnsscan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("city"));// Getting the scan resultResultScanner scanner = table.getScanner(scan);// Reading values from scan resultfor (Result result = scanner.next(); result != null; result = Scanner.next())System.out.println("Found row : " + result);//closing the scannerscanner.close();}}
编译和执行上述程序如下所示。
$javac ScanTable.java$java ScanTable
下面列出的是输出:
Found row :keyvalues={row1/personal:city/1418275612888/Put/vlen=5/mvcc=0,row1/personal:name/1418035791555/Put/vlen=4/mvcc=0}
