一、添加依赖:
<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.4.2</version></dependency>
二、使用Scanner读取数据示例:
package cn.edu.tju;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellScanner;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;public class TestHBaseRead {public static void main(String[] args) throws Exception {Configuration config = HBaseConfiguration.create();// create configuration//zookeeper 地址config.set("hbase.zookeeper.quorum","xxx.xxx.xxx.xxx");////zookeeper端口config.set("hbase.zookeeper.property.clientPort", "2181");////表名,必须提前在hbase中创建String tableName ="c1";//row keyString rowKey = "myKey2";//family,必须是hbase中有的familyString familyName = "fm2";//指定的某个column nameString specifiedColumnName = "by";Connection connection = ConnectionFactory.createConnection(config);Get g = new Get(rowKey.getBytes());g.addFamily(familyName.getBytes());try {Table table = connection.getTable(TableName.valueOf(tableName));Result result = table.get(g);CellScanner cellScanner =result.cellScanner();while (cellScanner.advance()){Cell cell = cellScanner.current();byte[] rowArray = cell.getRowArray(); //row key 字节数组byte[] familyArray = cell.getFamilyArray(); //列族 字节数组byte[] qualifierArray = cell.getQualifierArray();//列名 字节数据byte[] valueArray = cell.getValueArray();// 值 字节数组String columnName=new String(qualifierArray,cell.getQualifierOffset(),cell.getQualifierLength());String columnValue=new String(valueArray,cell.getValueOffset(),cell.getValueLength());if(specifiedColumnName.equals(columnName)){System.out.println(columnValue);}}}catch(Exception ex) {System.out.println(ex.getMessage());}}
}