hbase对Java的简单操作
1.简单命令
对表的操作:
create--创建表
list--查看table表的名称,类似show tables;
descript--查看表的主体结构
scan--查看表的实体内容
disable/enable--表的可用性
drop--删除表(需要先可用性为disable)
对内容的操作:
put--添加内容
append--追加内容
get--获取内容
delete--删除内容
2.java API的应用
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> 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); } }