Hbase实例之创建一个列簇

本文详细介绍了如何使用Java创建HBase实例并创建列簇,包括连接HBase数据库、创建Table、设置最大版本号及在Table中插入列簇的具体步骤,并通过示例代码展示操作流程。最终验证通过HBase shell确认Table的创建与数据插入效果。

关于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、支持国标GB28181平台国标GB28181 IPC和国标GB28181 NVR设备同时接入 (支持GB28181-2011版本和GB28181-2016版本)     2、支持国标GB28181设备注册和注销,对所有设备进行管理,获取资源 对资源列表进行管理     3、支持国标GB28181的目录订阅,对接收的订阅通知进行处理     4、支持国标GB28181实时视频请求(支持UDP、TCP主动(tcpactive)、TCP被动(tcppassive))     5、支持国标GB28181 PTZ控制     6、支持国标GB28181 录像查询     7、支持国标GB28181 历史视频点播 (支持UDP、TCP主动(tcpactive)、TCP被动(tcppassive))     8、支持国标GB28181 历史视频下载 (支持UDP、TCP主动(tcpactive)、TCP被动(tcppassive))     9、支持对接收的国标实时视频码流和历史视频码流进行管理     10、支持将国标的PS码流转换成ES码流     11、支持丢包打印和断流打印     13、支持RTSP服务和RTSP会话管理     14、支持RTSP客户端 UDP传输和TCP传输     15、支持国标GB28181设备5000路左右的接入管理,支持国标请求视频在100路左右     16、支持国标28181设备和通道写入mysql数据库      17、支持设备的云台PTZ控制,控制类型:上"up",下"down",左"left",右"right",左上"leftup",左下"leftdown",右上"rightup",右下"rightdown",镜头近"zoomin",镜头远"zoomout", 焦距远"focusfar",焦距近"focusnear", 设置预置位"setpos",调预置位"callpos"     18、支持历史视频的查询和历史视频的点播控制     19、支持对国标设备的控制,"record":录像开启和停止-通道id "guard":布放和撤防-报警通道id "reboot":设备重启-设备id "keyfame":强制关键帧-通道id     20、支持对实时视频的图片截图,通过http直接访问图片    21、支持rtmp和hls会话一直保留    22、支持报警消息(设备上线、下线和设备端报警)通过httpclient方式主动通知    23、支持公网和局域网同时存在    24、支持httpserver,接口支持http+json    25、支持设备上线、下线和设备报警通过httpclient通知到指定的httpserver   26、支持http+json设置平台信息  27、支持http+json获取资源组、资源等信息  29、支持国标28181级联上级
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值