数据中台存储之Hbase|清风
目录
1、HBase是什么?
2、HBase适用哪些场景?
3、HBase不适用哪些场景?
4、HBase的理论基础是什么?
5、HBase的整体架构是什么?
6、HBase核心功能、重要功能有哪些?
7、HBase的案例有哪些?
8、使用HBase能得到什么好处?
9、HBase的不足的地方是什么?
10、HBase怎么上云?
1、HBase是什么?
2、HBase适用哪些场景?
(1)单表数据量超千万,而且并发高。
(2)数据分析需求较弱,或者不需要那么灵活或者实时。
(3)构建音乐站用户属性库。用户属性分析和行为分析,标签库。
(4)构建广告实时计算系统。构建广告业务中的实时计算系统,将从网络广告的背景、数据特性、各种流处理框架、案例需求描述、概要设计、详细设计和核心功能实现等多个方面进行细致介绍,完全按照互联网项目从预研、设计、开发和部署的开发规范,将全面涵盖相关的理论背景知识和实践操作。
(5)用户画像。比如大型的视频网站,电商平台产生的用户点击行为、浏览行为等海量用户行为数据。
(6)消息/订单存储。譬如电商平台,因为HBase提供了一个低延时、高并发的访问能力。
(7)对象存储。在KV存储中,Meta数据:sizeof(KeyValue)<1MB,MOB数据:1MB<sizeof(KeyValue)<10MB,表示中等大小的数据,LOB数据:sizeof(KeyValue)>10MB,表示大对象。这里的MOB存储是中等对象存储,是对HDFS存储文件的一个缓冲过度,因为如果我们大量的1M或2M这种小文件直接存储在HDFS上,会对NameNode造成元数据维护的压力,所以在HBase中可以很好的做过度,合并后再持久化到HDFS上。
(8)时序数据。这里的时序数据是指随着时间而变化的数据,比如速度的展示,天气、温度、风速、车流量等等。
(9)Cube分析(KyLin)。通过KyLin将Hive或kafka中的数据,来构建Cube,这些Cube会存储在HBase中,以供其他的应用或其他的系统做实时查询或实时展示。
(10)Feeds流。这个场景主要是应用在抖音、或其他小视频系统中,可以把Feeds流理解为一种内容聚合器,它可以帮助用户实时的获取最新的订阅源内容。
3、HBase不适用哪些场景?
(1)产品主要需求是数据分析,比如做报表。
(2)单表数据量不超过千万。
(3)不能替代关系数据库。
(4)不能替代hdfs。
4、HBase的理论基础是什么?
(1)Google BigTable论文。论证了在大规模廉价服务器上搭建结构化数据存储的可行性。
(2)跳跃表(SkipList)。一种能高效实现插入、删除、查找的内存数据结构,这些操作的期望复杂度都是O(logN)。
(3)LSM树。一种对写入更友好的磁盘数据的索引结构,无论是何种写入请求,LSM树都会将写入操作处理为一次顺序写,而HDFS擅长的正是顺序写(且HDFS不支持随机写),因此基于HDFS实现的HBase采用LSM树作为索引是一种很合适的选择。
(4)布隆过滤器。可以以很小的内存空间快速实现不存在的数据的判断。
(5)Percolator协议。Percolator事务分为两个阶段:预写(Pre-write)和提交(Commit),本质上相当于一个加强的2PC。每一个列族都会预先增加两个列,分别是:
lock:存储事务过程中的锁信息;
write:存储当前行可见的数据和(最近一次提交)版本号(时间戳)。
5、HBase的整体架构是什么?
6、HBase核心功能、重要功能有哪些?
(1)RegionServer是HBase系统中最核心的组件,主要负责用户数据写入、读取等基础操作。
(2)Region迁移。作为一个分布式系统,分片迁移是最基础的核心功能。
(3)Region分裂。HBase最核心的功能之一,是实现分布式可扩展性的基础。
(4)Snapshot。HBase非常核心的一个功能,使用在线Snapshot备份可以满足用户很多需求,比如增量备份和数据迁移。
(5)在线合并Region是HBase非常重要的功能之一。
7、HBase的案例有哪些?
(1)目前国内使用Hbase的公司。阿里巴巴、小米、腾讯、网易、华为、滴滴、快手、中国移动、中国电信、中国人寿、京东等。
(2)异常案例:Full GC异常、HDFS异常、RegionServer直接宕机等。
8、使用HBase能得到什么好处?
(1)容量巨大。HBase的单表可以支持千亿行、百万列的数据规模,数据容量可以达到TB甚至PB级别。
(2)良好的可扩展性。HBase集群可以非常方便地实现集群容量扩展,主要包括数据存储节点扩展以及读写服务节点扩展。
(3)稀疏性。HBase支持大量稀疏存储,即允许大量列值为空,并不占用任何存储空间。
(4)高性能。HBase目前主要擅长于OLTP场景,数据写操作性能强劲,对于随机单点读以及小范围的扫描读,其性能也能够得到保证。对于大范围的扫描读可以使用MapReduce提供的API,以便实现更高效的并行扫描。
(5)多版本。HBase支持多版本特性,即一个KV可以同时保留多个版本,用户可以根据需要选择最新版本或者某个历史版本。
(6)支持过期。HBase支持TTL过期特性,用户只需要设置过期时间,超过TTL的数据就会被自动清理,不需要用户写程序手动删除。
(7)Hadoop原生支持。
9、HBase的不足的地方是什么?
(1)HBase本身不支持很复杂的聚合运算(如Join、GroupBy等)。
(2)HBase本身并没有实现二级索引功能,所以不支持二级索引查找。
(3)HBase原生不支持全局跨行事务,只支持单行事务模型。
10、HBase怎么上云?
(1)购买云HBase实例;
(2)申请ECS资源用于部署迁移服务(和HBase混部可以忽略这一项);
(3)打通迁移服务和源集群、目标集群的网络通信;
(4)快速部署启动迁移服务;
(5)拷贝建表信息到目标集群;
(6)增量数据同步开启,进行即时新增数据的同步;
(7)基线数据同步,并进行数据装载;
(8)数据正确性校验,并提供校验报告;
(9)验证;
(10)切换业务上阿里云HBase。