一:概念理解
1.ROWKEY
2.SCAN全表扫描
3.range范围(ROWKEY)
二:安装
1. Hadoop zookeeper hdfs
2.追加Path(不能出现空格) 使环境变量生效(source etc/profile)
3.更改网络netWORKS)
4.永久关闭防火墙***********
5.整个重启(reboot)
三:组件功能分工
Master(管理:regionserver,DDL请求,管理所有数据分片到regionserver的分配,hdfs文件清理);RegionServer(数据服务节点,与Client请求的交互):Write Ahead Log;zookeeper(Master的选举,存储-META表的地址:存储所有region的寻址入口,监听RegionServer的健康状态)
四:HBase的数据模型:Table的逻辑视图 K(rowkey, column, version)
1.列族是表的schema的一部分
Table的物理存储
Table = N Region 按RowKey水平切分
Region = N Store: 按ColumnFamily垂直切分
Store = 1 MemStore(内存)+ N HFile(HDFS): 每次flush会产生一个新的HFile
五:Table设计建议
1.自定义namespace
2.为表定义合理的Schema(列族的属性)
3.建表是设置合理的预分区
4.ROWKEY的设计(业务场景,利用hash)
5.列族,列名称尽量简短一些
6.设置合理的版本数据
HBase读写方法
写:put,delete(major_compact 标记的删除掉)deleteall(删除整行)
读:scan,get (支持过滤器来扩展器查询功能)
各种命令:
list_namespace
create_namespace 'gp'
help 'create'
create 'gp:testt' ,'info' ,{NUMREGIONS =>4,}
DESC 'gp:testt'
alter 'gp:gestt',{name =>'info',version=>'3'}
put 'gp:testt','123','info:cl1','v1'
scan ,{RAW => TRUE, VERSIONS => 10}
标记为删除的所有数据:
major_compact
compact(小合并不会删除被标记的数据)
数据即是索引
list
list 'ns1:.*'
help 'desc'
alter:修改添加删除(列族属性,表的属性)
HBase的高级查询
1.filter(过滤器:查询条件过滤)SingleColumnValueFilter
2.没有对应列,不会被过滤;put进hbase的数据虽然是字节数组,会通过字符串转换,默认按字典顺序进行比较的
3、过滤器链FilterList(本身是一个Filter)
a. RegexStringComparator
b. SubStringComparator
HBase的寻址机制
.root表(记录信息:user_info region1 region2)
.meta表(记录信息:user_info rk00001-rk100000 region1 regionserver1)
client客户端(缓存地址路径)




