HBase的主要特点
- 列存,schema free,支持结构化、半结构化和非结构化的存储;
- 具有所有分布式服务的基本特点:横向扩展/数据分片/故障迁移;
- 存储计算分离架构,底层为HDFS,数据可靠性主要依赖HDFS;
- 数据天然有序,有多版本;
- 只支持行级事务;
- 数据有强一致性;
- 支持数据批量按文件导入;
- 与hadoop生态圈产品完美结合;
- 面向PB级数据,千万级QPS;
- 底层硬件要求低,可以在成本低廉的SATA盘上提供百毫秒内的读写延迟。
HBase生态架构
HBase作为存储,支持KV和表格存储,也能做一部分小文件存储;
HBase作为中间层,可以通过上层的服务提供OLAP(phoenix,Kylin),graph(JanusGraph,HGraphDB),timeseries(OpenTSDB),geo(GeoMesa)等特定功能;
另外也可以结合ES/Solr提供文档索引或其他索引服务;

HBase应用场景
作为数据库,主要场景有:
-
画像特征:特别是用户的画像,是一个比较大的稀疏矩阵,蚂蚁的风控就是构建在HBase之上;
-
对象存储:我们知道不少的头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中;
-
实时风控,社交Feed流,商品历史订单,社交聊天记录,以及用户行为日志等;
作为中间层,可以提供如下服务:
-
时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求。提升了监控/IoT场景中的设备时序数据处理能力。
-
时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中。
-
CubeDB OLAP:Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求。
-
NewSQL:Phoenix 是 HBase 的开源 SQL 中间层,它允许你使用标准 JDBC 的方式来操作 HBase 上的数据。
-
实时数仓维度数据存储引擎:支持较大规模的查询(主要是与事实数据join的查询),能够快速实时更新。
上层生态现状
JanusGraph 主要的缺陷是所有的查询没法下推到存储层进行处理,只能把数据从 HBase 查询到 JanusGraph Server 内存再做相应的过滤,所以成本高且单次查询耗时高。
Kylin采用离线计算构建cube提供在线报表查询功能。但是业务有实时数据分析的需求,所以大部分业务场景都能被Doris替代。另外Kylin会造成集群内region数量过多,增加运维难度。
Phoenix在HBase上提供了全局和局部二级索引,是HBase 最优秀的 SQL 中间层。基本也是为了提供数据报表,但有被ClickHouse替代的趋势。
OpenTSDB和GeoMesa目前业内没有非常有竞争力的替代品,但是维护的成本比较大。GeoMesa集群目前也有与Kylin同样的问题,就是集群region数量过多,Master/RS重启代价和对业务影响非常大。
HBase的发展方向
据了解,目前大部分公司HBase接入的是离线服务和近线服务。头条/小米/360/美团/搜狗等,都接入少量在线业务。大部分公司对在线业务的存储替代方案是Pegaus/ByteKV/Redis等KV存储。阿里/腾讯/头条在HBase上提供了衍生产品的云服务。腾讯HBase总计约有4000+节点,最大的集群有500多台节点。腾讯内部多个业务包括腾讯视频,微信支付和腾讯云等都在使用 HBase 服务。阿里和360有12000+节点,京东 HBase集群规模为 5000 多台,爱奇艺 6000 多台。对于HBase在各公司内的应用场景基本都与上述场景描述大同小异。
云原生:云原生带来的好处是资源重复和弹性利用,以及存储/计算/运维成本低。从目前的业界主流来看,企业级SaaS和ToB是大的趋势。云计算的兴起,唤醒了业务对于资源按需即时获取的强烈需求,弹性能力(区别于扩展性)也成为云上开发者对于云产品的默认理解。
数据生态融合:降低业务使用和维护各类系统的复杂性,提供多模式的存储模型。类似阿里云提供的Lindorm引擎和Tablestore服务,一体化提供宽表/文件/索引/时空功能,和Timeline/消息队列/对象存储等服务。
提供极致的HBase服务:如阿里云的云HBase和增强版,把HBase目前无法替代的宽表和时空能力做到极致,索引和小文件根据业务发展定位支持程度。加强HBase本身的容灾,双活,多活,冷热温一体化存储,多种压缩/编码方式等的能力。
HBase目前面临的挑战
不管是云原生还是多模数据库,HBase面临的主要问题有:
容灾能力,同城双活和异地多活能力;
短时间的故障恢复能力;
存储成本问题,和冷热数据分开/异构存储能力;
用户体验:包括如何提升性能,抚平毛刺等等;
上层服务的良性支持,如GeoMesa,目前还处于艰难维护的状态。
小文件的良性支持,从目前业务情况看MOB功能在5MB以上的大Cell数据写入性能不理想。
阿里HBase抗战8年中遇到的问题随着业务体量增大基本都会出现https://zhuanlan.zhihu.com/p/88537424。
参考资料
https://cloud.tencent.com/developer/article/1512257?from=15425
https://www.51cto.com/article/636805.html
https://developer.aliyun.com/article/789727?spm=a2c6h.12873639.0.0.54bb3cb7dAq3t9
https://help.aliyun.com/document_detail/130418.html?spm=a2c4g.11186623.6.543.609b2283b9T8Qp
https://developer.aliyun.com/article/789303?spm=a2c4g.11186623.0.0.2f9241abJeZKGl
https://zhuanlan.zhihu.com/p/88537424
https://help.aliyun.com/document_detail/174640.html
https://developer.aliyun.com/article/684333
https://www.36kr.com/p/1725338714113
http://www.beeui.com/p/3499.html
https://clickhouse.com/docs/zh/
https://www.codenong.com/jsdd1ce500657f/
https://help.aliyun.com/apsara/enterprise/v_3_15_0_20210816/msha/enterprise-technical-whitepaper/r80dta.html?spm=a2c4g.14484438.10001.14
https://cloud.tencent.com/developer/article/1477234
https://tech.antfin.com/docs/2/317800
https://www.infoq.cn/article/rlyiy3bxytr_p7velldo
https://www.zhihu.com/column/c_1366104426311184386
603

被折叠的 条评论
为什么被折叠?



