kylin:通过预计算(已知要查询的维度),通过spark,mr遍历计算这些指标,然后将结果存储到hbase中,最后直接查询hbase表即可。
hbase rowkey定义不宜过长,否则存储压力会很大。这里通过使用字典编码。
hbase 优化经验:
火焰图分析:从下往上分析,峰值的分布(满载还是正常)
hbase内存消耗主因(memstore(写文件), blockcache(读取))
两种不同的gc算法:
hbase gc 参数配置:
使用G1算法,效果显著。
hbase WAL 和核心也是用ALL_SSD(所有副本使用SSD)
指定队列
分别使用HDD, ONE_SSD, ALL_SSD ,和使用读写分离。性能的变化。。
设置zone_reclaim。。可以避免本地内存不够导致OOM。
hbase (高一致性,一行数据一般都是通过一个regionserver来处理,通过单机来保证一致性,所以发生故障,恢复可能会较慢)和
Cassandra(HA要求高,一致性较低(一半副本写完既可以,所以读取时可能读取不到最新数据,然后通过异步刷新,知道最终写完副本),
redis(集群方式不完善)的区别
why?region crash 为true, 就无法恢复上不了线。
不做compactiono(合并),flush。
怎么把磁盘打满(利用起来)?
限流不要太狠,需因地制宜
避免小文件生成,和compaction合并。是否配置自动(1h)flush,和多少changes(3千万)flush。
到底写多少hlog根据盘数目:(怎么把磁盘用起来)
远程读和hybrid 都需要注意网络问题
使用jsata去查看handler wait在哪里?
文章来源: HBase 北京 meetup 笔记