Hbase如何使用

介绍

这篇文章主要介绍了Hbase如何使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

与mysql对比:

1创建表只需要指世代相传定列族,不需要指定具体的列以及类型

@PostConstruct

公共布尔不知道(){,,

, 日志 info(“创建表时),,,,

,表的表=表。 (this.getTableName ());,,,

,尝试{,,,,,,,

,,管理员管理=connection.getAdmin (),,,,,

,,,,如果(! admin.tableExists(表)){,,

,,,,,,,,, 日志 info (tableName.toString() +“不是,存在,创造你,),,,,,,,,

,,,HTableDescriptor才能tdesc=new HTableDescriptor(表),,,,,,,,,<强>,,,

<强>,,,, <强> HColumnDescriptor colDesc= <强>新 <强> HColumnDescriptor( <强> 家庭 <强>) <强>,强,,,,,,,,

,,,,tdesc.addFamily (colDesc);,,,,,,,,,

,,,,admin.createTable (tdesc);,,,,,,,

,,,,admin.close (),,,,,,

,,,},,,,,

,,, 日志 info(“创建表以何种);,,,,,

,,,返回true;,,,

,}捕捉(IOException才能e) {,,

,,日志, . error(“创建表错误{}{}“,表名,e.getLocalizedMessage ());,,,

,,,,,返回false,,,,,

}

}

2存储数据格式HBASE,价值全部采用<强> byte[]字节数据形强式存储

,,优势:1不需要提前处理数据类型统一采用<强> Bytes.toByte() 强所以存储速度更高

,,,,, 2与原始数据类型相比,序列化后的byte[],形式存储可以节省字节

3可以根据rowKey进行范围查找,这个需要将rowKey设计得当。

@Override

公共ListgetByRange(字符串,字符串结束){,

,尝试{,

,,,表=connection.getTable表(表。 (getTableName ()));,,

,,扫描扫描=new扫描();,

,,, scan.withStartRow (start.getBytes(),真的),,

,,,,,,.withStopRow (end.getBytes(),真正的),,,,

, ResultScanner扫描仪=table.getScanner(扫描);,,,

, List,列表=new ArrayList<的在();,

,,,,(结果结果:扫描仪){,

,,,,, list.add (getObj(结果));,,

,,},,,,

返回列表;,,

}捕捉(异常e) {,,,

日志 . error (“HBase批量获取数据失败“,e);,

,},

,返回集合。 emptyList ();}

Hbase如何使用