hbase-2.4.0源码阅读说明

本文分析了HBase作为分布式数据库的特点,指出其在查询功能、读写性能平衡以及设计复杂性上的不足。HBase不支持SQL,牺牲读性能以优化写性能,并且设计上缺乏清晰主线。源码阅读将关注Put和Scan操作,揭示WAL、缓存以及HFile等关键概念。
摘要由CSDN通过智能技术生成


  最初在开始分析hadoop源码时,已做好了后续的源码阅读规划,hbase就是继hadoop之后要分析源码的软件.有关hbase的源码阅读这里要首先明确一下.

1 hbase作为数据库的特点

  Hbase的全称是hadoop database,是构建在hdfs文件系统之上的数据库,因此与hadoop的联系最为紧密.谈及数据库,其历史和操作系统一样古老.与操作系统类似,我更倾向于把数据库划分到历史和哲学的范畴,而不是技术的范畴,所以这里要针对hbase这一特殊的数据库作一些说明.

1.1 先天缺陷: 缺失核心功能的分布式数据库

  Hbase作为分布式数据库,最核心的缺陷是缺失查询功能.hbase不支持sql语句(或类似的查询引擎),只有一些简单的查询模式.所以作为数据库,这个缺陷是致命的,尽管是分布式的,但前提是数据库.

1.2 主次不分: 为了提升写性能而严重降低读性能

  数据库的核心功能是查询,因此读性能至少不能低于写性能.hbase因为没有好的查询功能,因此也就牺牲了读数据的功能,增强了写数据的功能.这就很是矛盾,如果仅仅是为了写数据和存数据,hdfs文件系统本身就已足够,那么搭建于其上的hbase就显得很鸡肋了.

1.3 复杂凌乱: 从设计到实现没有一个要突出的主线功能

  感觉hbase也是生不逢时.与cassandra相比,同样是使用合并策略来管理数据,但是cassandra有完善的sql功能,是典型的以数据库核心功能为目标来设计和实现的,从各方面来讲都要比hbase清晰和简洁.作为一款分布式数据库,可能hbase是最差的选择.

2 源码阅读步骤和逻辑

  Hbase可以说是作为一款典型失败的分布式数据库,其设计和实现都存在着明显的局限,因此这里只从hbase自身的整个实现逻辑来摘取关键节点,对此进行源码上的分析,包括以下三部分:
  1 put操作,借此说明wal和缓存
  2 scan操作,借此说明索引及硬盘存储文件hfile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值