Point1:
生活中的数据基本上都是非结构化的数据,可以从HBase 提取一部分数据作为结构化数据,然后用Hive和HBase结合一下,使用Hive进行查询
Point 2:
HBase + Redis(客户端的缓存)——一对非常好的搭档
Point 3:HBase的缺点
1.查询不灵活,不能使用cloumn过滤查询
2.不支持全文索引,使用solr和hbase整合可以完成全文搜索
3.HBase本身只能做实时的增删改查,必须借助MapReduce和Spark来做数据分析和挖掘,并且代码中继承TableMapper 之后,输入数据类型固定
Point4:HBase的优化:
1.数据方面的优化
可以对RowKey进行散列,利用散列性进行取反(比如数字)或者求Hash值
HBase并不能很好的处理超过2到3个的column family的表,合并需要用到diskIO(DiskIO是一个发展瓶颈)
2.文件的合并方式:
minor compact :较小、很少文件的合并
每一次合并默认是10个文件 hbase-hstore-comgpaction-min(3)、max(10)、min.size、max.size__配置在hbase-site.xml
major compaction
把所有的store file 合并成一个
3、WAL flag ——HLog日志
默认情况下,是启动的,当导入数据的时候,需要关闭HLog,因为一旦RegionServer一旦宕机,Put、Delete的数据无法根据WAL日志进行恢复
4、table 和 ResultScanner 编写程序时,finally中都要关闭,否则对应的RegionServer资源无法释放
5、缓存
MemStore 写缓存——无法关闭的,但是可以调整大小(40%—90%)
BlockCache 读缓存
Scan Caching 读缓存不开启
6、HBase的压缩方式:
可以采用支持字节流的一种压缩方式
protocol buffer 基于字节的二进制数据的数据交换格式——Google创作的
JSON基于字符串的交换格式,轻量级的数据交换格式
gson 专门可以把java的数据变成json
Jackson是java中处理json数据格式的一个类库
7、HBase触发器
触发器:表级的触发器、系统级的触发器
coprocessor