HBase作为存储方案

HBase存储特点


* Client
1. 包含访问HBase的接口,并维护cache来加快对HBase的访问,比如region的位置信息。
* Zookeeper:
1. 选举集群中的Master,Master与RegionServers 启动时会向ZooKeeper注册。
2. 存储所有Region的寻址入口。
3. 实时监控Region server状态并实时通知Master。
4. 存储HBase的schema和table元数据。
5. 使Master不存在单点故障。
* Master
1. 在Region Split后,为Region server分配region。
2. 管理HRegionServer的负载均衡,调整Region分布。
3. 发现失效的Region server后重新分配其上的region,并负责Regions迁移。。
4. 管理用户对table的增删改查操作。
* Region Server
1. Regionserver维护region,处理对这些region的IO请求,向HDFS文件系统读写数据。
2. Regionserver负责切分在运行过程中变得过大的region。
* Region
1. table按照行分割成若干Region,每个Region对应table中的一个Region。
2. Region由多个HStore组成。
* HLog
1. 类似mysql的binlog,数据会先写到WAL上,然后再放到内存中,数据恢复。
2. 已经持久化到StoreFile的HLog会定期被删除。
* HStore
1. HBase的存储核心,由MemStore和StoreFile组成。
2. 每个HStore对应Table的一个列族的存储。
* MemStore
1. 数据不直接写磁盘而是先写到MemStore,当满了才会Flush到StoreFile中。
2. 底层由HFile实现。
3. 数据只需写入到此内存即可返回,快速的插入操作。
* StoreFile
1. StoreFile文件数到一定阀值会触发Compact合并操作,多个StoreFile变成一个StoreFile。
2. 所有数据操作都是添加操作,保证I/O,而对于数据更新/删除都是在后续compact过程中完成。

底层存储

HBase支持很多文件系统的存储。
1. 操作系统原生文件系统。
2. HDFS文件系统。
3. 其他文件系统。

HDFS可靠性高及其同属同个生态,选择HDFS作为存储。

HBase 如何寻址

寻址过程大致为client -> -ROOT- -> .META. -> RS ->region -> rowkey。

  1. client通过zookeeper的root-region-server节点获取哪个Server管理-ROOT-表,包含该机器的IP地址和端口。
  2. 接着访问-ROOT-表,该表只有一个Region且不会split,每行记录了.META.表的一个region信息,以及这个region的startkey和endkey,查找到.META.表包含要查的rowkey记录的Region的ip和端口。
  3. 接着访问该ip和端口的.META.表,根据rowkey找到用户表数据存放对应的Region的机器信息,根据rowkey查找对应的regionserver和region。最后到对应的region找到value。
  4. 根据查到的用户表信息到对应机器上查找数据。

客户端会缓存查询过的rowkey的地址。

client访问hbase上数据的过程并不需要master参与(寻址访问zookeeper和region server,数据读写访问region server),master仅仅维护table和region的元数据信息,负载很低。

HBase 的性能、如何扩展

HBase的插入性能很好,查询还不错,腾讯给出的数据是经过调优在百亿数据级别80%以上数据能在20ms查到。

详细的一些数据后面在写代码阶段会给出。

当数据峰值接近系统设计容量时,可以简单的通过增加服务器的方式来扩大容量。某种程度上来说,这个动态扩容过程无需停机,HBase系统可以照常运行并提供读写服务,完全实现动态无缝无宕机扩容。

balance模式下,会自动将数据迁移到新机器上,适合中小集群,迁移过程大量消耗机器资源。

非balance模式下,新写入文件写到新机器上。

运维

  1. 官方的命令行或二次开发,rest接口。官方有原生监控平台。
  2. BigInsights。

最后的说明

hbase优势在于接近线性的任意水平扩展,不必在单机上与redis性能太较真,看自己场景选择。

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:

时间: 2024-08-03 16:09:12

HBase作为存储方案的相关文章

HBase大对象存储方案的设计与实现

HBase大对象存储方案的设计与实现 南京大学   康毅 海量数据的时代正在到来,随着互联网的急速发展,网络访问量.网络访问日志.通讯记录.视频资料.移动网络和各种智能终端所产生的巨大数据集的规模也在急剧扩大.而其数据集的一个重要特点体现在:超过80%的数据是非结构化的.传统技术无法胜任大数据集的分析.管理和挖掘,目前业界对于大数据处理的一种流行解决方案为HBase. HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.而非结构化数据作为一个大对象(Large Object

Redis百亿级Key存储方案

1 需求背景 该应用场景为AdMaster DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称admckid)的mapping关系,还包括了admckid的人口标签.移动端id(主要是idfa和imei)的人口标签,以及一些黑名单id.ip等数据. 在hdfs的帮助下离线存储千亿记录并不困难,然而DMP还需要提供毫秒级的实时查询.由于cookie这种id本身具有不稳定性,所以很多的真实用户的浏览行为会导致大量的新cookie生成,只有

Honeycomb:一个基于HBase的存储引擎

Honeycomb是一个开源的,后端基于HBase的存储引擎.Honeycomb将Mysql和HBase结合,支持在Mysql上进行增删改查表.通过Honeycomb,应用程序可以以关系数据模型和SQL接口访问Hadoop. Honeycomb分为三个不同的层次:存储引擎插件,代理,和后端.交互视图如下: 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/extra/ Honeycomb引擎有Mysql载入,并从Mysql优

Nexsan的绿色数据存储方案

数据中心已成为很多公司的最大能源消耗中心,如何降低能耗,如何提高利用效率,如何减少运营成本?这些基于环保节能的考虑,使绿色存储成为近年新兴的一个概念,一个新的主题. Gartner认为,到了2008年,当前50%的数据中心为了满足高密度设备要求,都将面临电力短缺,无法得到充足的能源供给.随着能源需求持续增长,到了2009年,超过70%的公司会发现,数据中心能耗将成为他们的第二大运行成本. 在最近美国高层公司举行的民意投票中,76%涉及数据中心采购的行政部门都表示节能产品将成为采购首选. Nexs

SAS盘阵航天联志AL-7121A 打造SMB存储方案

如何将有限的资金用于选购性价比更为突出的存储产品,是目前存储需求日益增长的中小型企业所面令的最为头疼的问题.在存储盘阵中,随着即将亮相的6Gbps SAS标准的推出,在存储市场这个特有的过渡期中,处于成熟期的3Gbps SAS相关产品,却渐渐的呈现出了一种逆势而兴的趋势,并成为了近期众多中小型企业最为关注的高性价比产品之一. 作为一款被众多政府机关和行业机构选用的SAS盘阵产品,航天联志自主研发的AL-7121A,以高安全.高性能.高扩展等众多优势,成为了为中小型企业创建低成本存储解决方案的热门

服务器-存储方案(DAS、NAS、SAN、OSS)与分布式文件系统的关系?

问题描述 存储方案(DAS.NAS.SAN.OSS)与分布式文件系统的关系? 以存储方案DAS为例,存储系统中有服务器有磁盘,有文件系统管理磁盘,是一个完整的系统,为了解决数据的共享和访问. 而分布式文件系统也是为了解决存储.共享的问题,在分布式文件系统中,数据存储在许多磁盘上,文件系统管理整个存储空间. 以上两者的区别在哪里?

基于校验编码备份的分布存储方案

基于校验编码备份的分布存储方案 陈冬晓,王鹏 传统的云计算存储系统为保障可用性,一般使用镜像冗余备份而产生大量冗余备份数据,影响了存储数据空间的利用效率.针对此情况,为减少备份数据对存储空间的占用,提出一种存储方案.放弃了镜像冗余备份,引入校验编码的方式进行备份,以减少备份数据;同时采用了冲突跳转的机制对备份进行验证,在保证备份数据有效性的前提下减少备份数量.通过模拟程序运行结果与主流云存储方案的对比表明,所提存储方案在保证数据可靠性的同时,显著地降低了分布存储对磁盘空间的占用. 关键词:云存储

存储方案(DAS、NAS、SAN、OSS)与分布式文件系统的关系?

问题描述 以存储方案DAS为例,存储系统中有服务器有磁盘,有文件系统管理磁盘,是一个完整的系统,为了解决数据的共享和访问.而分布式文件系统也是为了解决存储.共享的问题,在分布式文件系统中,数据存储在许多磁盘上,文件系统管理整个存储空间.以上两者的区别在哪里? 解决方案 解决方案二:从用户层面看,存储方案和分布式文件系统均可提供一个存储空间,这是相同点:从其内部联系看,分布式文件系统是联网的各个设备,将各自的存储空间分配形成一个逻辑上统一的存储空间sannas则是用专用的存储设备(可理解为多个硬盘

java-Web文件管理系统的设计,文件存储方案

问题描述 Web文件管理系统的设计,文件存储方案 近期需要做一个web文件管理系统,主要实现权限管理以及文件管理,权限管理到目录级,类似于logicalDoc,文件该怎么存,权限怎么控制,还是比较迷茫,忘各位能给点思路,先行谢过.