首先我们需要明确一个重要的概念,mapreduce任务往往至少要几秒的时间,而对于小规模的查询,mysql瞬间就可以完成查询操作,对于大规模的查询,使用像hbase这样的数据库才能体现出价值。
hbase的数据存储在hdfs之上,因此我们在使用hbase的时候,首先就是要启动hadoop,另外,hbase的协调管理是通过zookeeper来完成,因此,hbase的启动离不开zookeeper,zookeeper要先于hbase启动,否则,hbase是启动不起来的。
对于理解hbase,要了解hbase里面的几个重要的角色、
HMaster
负责HRegionServer分配区域,并对HReginServer进行负载均衡和监控。
HRegionServer
负责处理用户的读写操作,通过HMaster来获取自己所需要服务的数据表。对于写操作会先记录到Hlog中,缓存在内存中的是Memcache。当Memcache达到一定大小后,会创建mapfile写入到磁盘中。而且对于读操作,也是先找Memcache,然后再找MapFiles。
HBase Client
负责通过HMaster来寻找HRegionServer
Hbase将表按行划分为若干个HRegion,HRegion又按列族划分为若干个HStore。HStore包括内存中的memstore和持久化到disk上的HFile。
对于这个person表
id | int | pk |
name | varchar | |
age | int |
table | row key | family | attributes |
person | id | info | name,age |
基本操作
创建
create'person','info'
插入
put'person','1','info:name','xx'
put'person','2','info:name','ww'
put'person','1','info:age','11'
put'person','2','info:age','12'
查找
get'person','1'
web页面查看localhost:50070,从utilities下选择browse the file system,输入/hbase/data/default 便可以查看刚才建的表。