前言
建议先阅读前文HBase Snapshot基本原理。
HBase作为数据库,可以用于线上TP类需求,但如果直接基于HBase表运行AP类的离线分析型任务,则有2个问题:
- 可能会对线上读写产生影响,造成集群抖动。
- 速度慢
所以HBase提供了工具,可以直接越过HBase层直接读存储在HDFS上的文件,常用的就是Scan Snapshot功能。好处是:
- 在某个时间点打snapshot,基于snapshot做查询
- 直接读HDFS文件,避免与在线请求竞争HBase的计算资源,有效减轻对在线业务的影响。但如果对HDFS的吞吐过高也会有影响,所以也要根据集群规模考虑对IO限流。
- 速度快。可以基于MR实现,轻松实现弹性。并且因为跳过了HBase这一层,执行速度得到极大提高。