每日积累【Day 3】Hbase架构深入学习

简介: 每日积累【Day 3】Hbase架构深入学习

Hbase架构深入学习

Hbase

Apache HBase建立在HDFS之上的分布式、基于列存储的非关系型数据库;具有可靠、稳定、自动容错、多版本等特性;HBase实际上是Google BigTable项目的开源实现,它适合海量大规模(数十亿行、数百万列)的结构化数据存储;当需要随机、实时读写访问大数据时,使用HBase;


架构

1.png

每个服务详解:

在整个Hbase架构中,采用的是Master/Slave架构,其组成部分包括Zookeeper集群,HMaster节点,HRegionServer节点,底层存储到Hdfs集群中。
Zookeeper的作用:管理多个HMaster保证只有一个HMaster处于Active状态,其余处于stanby状态;存储所有HRegion的访问地址入口,Zookerper中的Quorum节点存储表地址信息,HMaster地址;使用watch机制监控HRegionServer的上线和下线信息,并及时通知给HMaster;存放整个 HBase集群的元数据以及集群的状态信息;还有容错机制,active状态的Hmaster宕机或者出故障之后,将正常的Stanby状态节点切换为Active状态。
Hmaster作用:管理HRegionServer,实现HRegion的负载均衡;在Region切片后负责新的Region的分布,当某个HRegionServer退出时迁移其中的Hegion到其他HRegionServer中,管理用户对命名空间以及table的元数据(实际存储在HDFS上)。
HRegionServer作用:负责监控正在运行的HRegion,处理访问HRegion的IO请求,向HDFS中读写数据;负责切分运作过程中正在变大的HRegion,拆分机制为HRegion的大小 >= HRegion数量的平方 * 128MB时继续进行切分,当HRegion数量达到9时,之后的拆分大小为10GB;Client访问HBase中的数据只需要访问zookeeper中存储的相关元数据信息,直接访问HRegionServer进行数据的读写,HMaster仅仅维护了Table和Region的元数据,因此负载很低;
Client端:整个HBase集群的访问入口;使用HBase RPC机制与HMaster和HRegionServer进行通信;与HMaster进行通信进行管理表的操作;与HRegionServer进行数据读写类操作;包含访问HBase的接口,并维护cache来加快对HBase的访问
HRegion:是HBase根据rowkey切割后的产物,里面存储着切割后的StartKey和EndKey,由于rowkey是排序的,所以Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。
HRegionServer一般和DataNode在同一台机器上运行,实现数据的本地性。HRegionServer包含多个HRegion(0~1000)
HRegion由WAL(HLog)、store组成 Store由MemStore、StoreFile组成
HRegion由WAL(HLog)、store组成 Store由MemStore、StoreFile组成
Store是由列簇Column Family切分而成的
MemStore是一个写缓存(In Memory Sorted Buer),所有数据的写在完成WAL日志写后,会 写入MemStore中,由MemStore根据一定的算法将数据Flush到底层HDFS文件中(HFile),通常每个HRegion中的每个Column Family有一个自己的MemStore。


相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
存储 负载均衡 分布式数据库
bigdata-27-HBase架构与概念
bigdata-27-HBase架构与概念
91 1
|
2月前
|
存储 分布式数据库 数据库
Hbase学习二:Hbase数据特点和架构特点
Hbase学习二:Hbase数据特点和架构特点
48 0
|
4天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
34 18
|
19天前
x86体系架构学习
x86体系架构学习
|
1月前
|
机器学习/深度学习 算法 网络架构
神经网络架构殊途同归?ICML 2024论文:模型不同,但学习内容相同
【8月更文挑战第3天】《神经语言模型的缩放定律》由OpenAI研究人员完成并在ICML 2024发表。研究揭示了模型性能与大小、数据集及计算资源间的幂律关系,表明增大任一资源均可预测地提升性能。此外,论文指出模型宽度与深度对性能影响较小,较大模型在更多数据上训练能更好泛化,且能高效利用计算资源。研究提供了训练策略建议,对于神经语言模型优化意义重大,但也存在局限性,需进一步探索。论文链接:[https://arxiv.org/abs/2001.08361]。
30 1
|
2月前
|
大数据 分布式数据库 Hbase
Hbase学习三:Hbase常用命令总结
Hbase学习三:Hbase常用命令总结
90 0
|
3月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
39 1
|
3月前
|
存储 SQL 分布式计算
技术心得记录:深入学习HBase架构原理
技术心得记录:深入学习HBase架构原理
|
4月前
|
Kubernetes API 调度
Kubernetes学习-核心概念篇(二) 集群架构与组件
Kubernetes学习-核心概念篇(二) 集群架构与组件
|
4月前
|
负载均衡 应用服务中间件 Linux
深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」
深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」
268 0