作为大数据主流的框架之一,Hadoop的发展已经进入稳定成熟阶段,针对于大数据处理各个环节当中的问题,都有相应的解决方案,也因此形成了完整的Hadoop生态,其中各个组件的配合,共同完成大数据处理任务。今天我们就主要来聊聊Hadoop和Hbase的关系,详细介绍一下Hadoop Hbase相关的知识。

Hbase,其实是Hadoop Database的简称,本质上来说就是Hadoop系统的数据库,为Hadoop框架当中的结构化数据提供存储服务,是面向列的分布式数据库。这一点与HDFS是不一样的,HDFS是分布式文件系统,管理的是存放在多个硬盘上的数据文件,而Hbase管理的是类似于key—value映射的表。
 

Hadoop和Hbase的关系


Hbase底层仍然依赖HDFS来作为其物理存储,并且还需要Zookeeper协助提供部分配置服务,包括维护元信息和命名空间等。

传统的关系型数据库,数据按照行进行存储,在进行查询时,需要使用大量的I/O,数据库必须大量膨胀才能满足性能要求,这在面对大规模数据处理任务时,计算性能受到极大的拖累,完全不适应大数据处理的需求。

而Hbase的数据存储,数据是按列存储的,查询时只访问所涉及的列,大量降低系统I/O,数据类型一致,可以高效压缩存储

HBase中有Column Family的概念,简称为CF。CF一般用于将相关的列(Column)组合起来。上述例子中,“姓”和“名”组合成为info,组合的形式是类似于字典的key-value形式。在物理上HBase其实是按CF存储的,只是按照Row-key将相关CF中的列关联起来。

总体来说,Hbase对数据的存储方式和数据结构进行的修改和规整,使其更加善于去处理大数据的场景,此在Hadoop MapReduce运行计算时能够提供更好的底层支持。

当然,Hbase并非完美,限于这样的数据结构和存储方式,Hbase只能做简单的key-value查询,不能支持复杂的统计SQL。

关于Hadoop和Hbase的关系,相信看完以上的内容,大家也都能够做到基本的了解了。在Hadoop框架当中,基于分布式文件系统HDFS和分布式数据库Hbase,保证了稳定可靠的底层支持,为后续的数据处理提供了保障。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐