region 是hbase中分布式存储和负载均衡的最小单元,刚开始,一个表只有一个region,随着数据量的不断扩大,一个region会变成两个,以后多个,一个表会被分配到多个region中。但一个region增加时不会拆分到其他server上。
hbase 数据表由行键(检索主键)列族等组成,结构如下:
ROW KEY 时间戳 列族(列族前缀【列名】:限定符[可为空]) CNN:a CNN:b
T9 cnn.a.com1 b1
T8 cnn.a.com2 b2
TOM T7
JERRRY SAME SAME
创建表:
create 'tablename','cnn(列族前缀)'
插入值
put 'tablename' 'rowkey1','cf:a','value1'
put 'tablename' 'rowkey1','cf:b','value2'
put 'tablename' 'tom','cll:','value3' //代表只有一族
描述表
discribe table;
code in java
HBaseConfiguration conf =new HBaseConfiguration();
HBaseAdmin admin=new HBaseAdmin(config);
HTableDesriptor desc=new H..("school".getBytes());
desc.addfamily(newHCollumnDescriptor("grade:")
...
admin.createTable(desv);
HTable table=new HTable(conf,"school");
//add data
BatchUpdate tom=new ..("Tom");//row key
tom.put("grade:".getBytes,"67".getBytes());//values
table.commit(tom);
另外,连接hbase时可能会出现这样的错误:
The node /hbase is not in ZooKeeper
,具体解决办法是:
运行zookeeper:./zkCli.sh
创建znode: create /hbase myhbase
新手配置hbase时通常会遇到一些问题,如:
start-hbase.sh时,会出现SJ等一些错误提示,
进入hbase/lib下删除slf4j-log4j12-1.7.5.jar即可