Hbase实例之创建一个列簇

关于HBase的前后因果先不讨论,现在写一个Hbase实例,怎么样去创建一个Hbase的列簇.

public class HbaseTable {

//定义一个hbase连接
Configuration conf = null;

        //构造方法初始化,连接到hbase数据库
HbaseIf() {
                //创建Hbase数据库的连接,默认本地
conf=HBaseConfiguration.create();
}
       //创建一个Table
public void create_table(String name, String col, int version)
throws Exception {
                //创建一个对象,连接到Hbase
HBaseAdmin admin = new HBaseAdmin(conf);
                //判断一个Tbale是否存在,若存在,则删除该Table
if (admin.tableExists(name)) {
admin.disableTable(name);
admin.deleteTable(name);
}
                //初始化Tbale,传入Table名称
HTableDescriptor htd = new HTableDescriptor(name);
                               //初始化列,传入列名称
HColumnDescriptor hcd = new HColumnDescriptor(col);
               //设置Hbase最大版本号
hcd.setMaxVersions(1);
               //网一个Table中插入一个列簇
htd.addFamily(hcd);
               //创建一个Tbale
admin.createTable(htd);
}
/*
* tab_global param:userid

* tab_user2id info:id

* tab_id2user info:username, info:password
*/
public void createTables() throws Exception {
                //创建一个名为tab_global的Table,列为param的列
       create_table("tab_global","param",1);
                //创建一个名为row_userid的RowKey,Hbase都是村二进制的数据所以要转化的Byte
Put put=new Put(Bytes.toBytes("row_userid"));
int i=1;
                //在列簇中创建一条数据,列簇名是param:userid
                put.add(Bytes.toBytes("param"), Bytes.toBytes("userid"), Bytes.toBytes(i));
//往Table里插入数据
                HTable ht=new HTable(conf,"tab_global");
                ht.put(put);
                //创建一个名为tab_user2id的Table,列为info的列
                create_table("tab_user2id","info",1);
                create_table("tab_id2user","info",1);
}
public static void main(String[] args) throws Exception {
HbaseTable hbase=new HbaseTable();
hbase.createTables();
}
}
 运行该对象数据即可插入。 

验证:在hbase shell中输入 list 会出现三个表

tab_global                                                                      
tab_id2user                                                                     
tab_user2id  

输入:scan 'tab_global'  会出现插入的数据

hbase(main):002:0> scan 'tab_global'
ROW                   COLUMN+CELL                                               
 row_userid           column=param:userid, timestamp=1377096845757, value=\x00\x00\x00\x01   

如图:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值