Hbase 使用场景:有数十亿列,同时在很短时间内有数以千计的读写数据操作
每天写入量巨大,而相对读数量较小的应用,不需要复杂查询条件来查询数据的应用,HBase只支持基于rowkey的查询
读写流程:clinet-wal-memstore-Hfile
概念:Hmaster、RegionServer、Region、HFile
集群配置:CPU: 8~24核、电源: 恒定,散热好、内存:8~48G、磁盘:SATA驱动,(7200r/min)、网络(小集群1G/s ,大集群 10G/s)
容量规划:磁盘容量比存储实际容量多出25%~50%
估算公式:T =(S*R)*1.25(估算了临时文件)
S:存储量,R:副本数,T:集群所需空间
用NTP(网络时间协议)保证集群各节点准时
Hbase操作:
读 get get 't1','rowkey001', 'f1:col1'
写 put put 't1','rowkey001','f1:col1','value01'
扫描 scan scan 'tablename',{LIMIT =>2 } 获取前两行
删除 delete delete 't1','rowkey001','f1:col1'
Hbase可以作为hive外部表数据
权限控制:ACL
数据备份:
1、离线备份:distcp命令 hadoop distcp hdfs://jiqun1:9000/hbase hdfs://jiqun2:9000/hbasebackup/backup1
2、在线备份:Hbase快照--在线、离线两种方式
3、使用Export和Import 进行备份和恢复
java操作HBase
基本增删改查 HTable类,Hbase存储都是字节,Hbase单元格数据大小不能超过20M
过滤器功能-通过RegionServer进行过滤
Hbase内部提供了restful和thrift服务接口,通过命令可以开启。
其它Nosql数据库:redis 支持事务,MongoDB不支持事务