import java.io.IOException;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.Test;
public class test {
//通用类
static Configuration conf;
static Connection cont;
static Admin admin;
//建立连接
/**
*
*/
@Before
public void init() {
// 取得一个数据库连接的配置参数对象
conf=HBaseConfiguration.create();
// 设置连接参数:HBase数据库所在的主机IP
conf.set("hbase.zookeeper.quorum", "192.168.110.101");
// 设置连接参数:HBase数据库使用的端口
conf.set("hbase.zookeeper.clientPort", "2181");
try {
// 取得一个数据库连接对象
cont=ConnectionFactory.createConnection(conf);
// 取得一个数据库元数据操作对象
admin=cont.getAdmin();
} catch (IOException e) {
e.printStackTrace();
}
if(null!=cont) {
System.out.println("hello hbase");
}
}
//查询数据
/**
*
* @throws IOException
*/
@Test
public void testGetdeom() throws IOException {
//根据表名,得到表内的字段
byte[] tn_bytes="customer".getBytes();
//获取里面的value,并重新以表的形式储存
TableName tn=TableName.valueOf(tn_bytes);
//根据行键获取bytes,并赋值为get类型,以表的形式连接
Get gt=new Get("Laochu".getBytes());
Table tt=cont.getTable(tn);
//从形成的表中获取行键为result类型
Result rt=tt.get(gt);
//将获取内容以cell泛型存储
List cell=rt.listCells();
//循环输出里面内容
for(Cell cloums:cell) {
byte[] family=CellUtil.cloneFamily(cloums);//用cellutil编码转译,克隆得到
byte[] qualifier=CellUtil.cloneQualifier(cloums);
byte[] value=CellUtil.cloneValue(cloums);
long timetaple=cloums.getTimestamp();
System.out.println("\t列族:"+Bytes.toString(family)
+"\t列名:"+Bytes.toString(qualifier)
+"\t值:"+Bytes.toString(value)
+"\t时间戳:"+timetaple);
}
}