scan 命令用于查看HTable数据。使用 scan 命令可以得到表中的数据。它的语法如下:
scan ‘<table name>’
下面的示例演示了如何使用scan命令从表中读取数据。在这里读取的是emp表。
hbase(main):010:0> scan &aposemp&apos ROW COLUMN+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
使用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 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() } }
编译和执行上述程序如下所示。
$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}