从 0 开始学大数据
李智慧
同程艺龙交通首席架构师,前 Intel 大数据架构师,《大型网站技术架构》作者
71151 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
智慧写给你的寄语 (1讲)
从 0 开始学大数据
15
15
1.0x
00:00/00:00
登录|注册

14 | BigTable的开源实现:HBase

哪些场景最好还是使用MySQL这类关系数据库
如何在应用开发的时候克服这些缺点
HBase的列族数据结构的缺点
提高数据写入速度
使用LSM树的数据结构进行数据存储
面向列族的稀疏矩阵存储格式
列族(ColumnFamily)设计
依赖可分裂的HRegion及可伸缩的分布式文件系统HDFS实现
面向在线业务的实时数据访问延迟
可伸缩海量数据储存
提出了诸多方案
解决关系数据库的不足
关系模型绑架对象模型
数据存储中包含了一部分业务逻辑
大规模处理海量数据
BigTable -> HBase
MapReduce -> Hadoop分布式计算框架
GFS -> HDFS
开启了大数据的时代
思考题
HBase的高性能存储
HBase的可扩展数据模型
HBase的伸缩性
HBase的架构设计
NoSQL数据库的出现
传统关系数据库的局限性
NoSQL系统HBase
开源产品对应关系
Google发表GFS、MapReduce、BigTable三篇论文
BigTable的开源实现:HBase

该思维导图由 AI 生成,仅供参考

我们知道,Google 发表 GFS、MapReduce、BigTable 三篇论文,号称“三驾马车”,开启了大数据的时代。那和这“三驾马车”对应的有哪些开源产品呢?我们前面已经讲过了 GFS 对应的 Hadoop 分布式文件系统 HDFS,以及 MapReduce 对应的 Hadoop 分布式计算框架 MapReduce,今天我们就来领略一下BigTable 对应的 NoSQL 系统 HBase,看看它是如何大规模处理海量数据的。
在计算机数据存储领域,一直是关系数据库(RDBMS)的天下,以至于在传统企业的应用领域,许多应用系统设计都是面向数据库设计,也就是先设计数据库然后设计程序,从而导致关系模型绑架对象模型,并由此引申出旷日持久的业务对象贫血模型与充血模型之争。
业界为了解决关系数据库的不足,提出了诸多方案,比较有名的是对象数据库,但是这些数据库的出现似乎只是进一步证明关系数据库的优越而已。直到人们遇到了关系数据库难以克服的缺陷——糟糕的海量数据处理能力及僵硬的设计约束,局面才有所改善。从 Google 的 BigTable 开始,一系列的可以进行海量数据存储与访问的数据库被设计出来,更进一步说,NoSQL 这一概念被提了出来。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

HBase是一种基于Google BigTable的开源实现,通过数据分片设计和HDFS实现了分布式海量存储。其架构设计依赖可分裂的HRegion和可伸缩的HDFS,以HRegion为单位管理数据,并通过HMaster和HRegionServer实现数据访问。HBase的列族设计使得数据表可以包含数百万的字段,并在查询时非常方便。LSM树的使用极大程度地减少了磁盘的访问次数,加快了访问速度。这些优良的设计结合Apache开源社区的高质量开发,使得HBase在NoSQL领域保持领先优势,逐步成为最具影响力的产品。 HBase的列族结构虽然具有灵活的优势,但也存在一些缺点。在应用开发中,可以通过合理设计数据模型和使用合适的数据访问模式来克服这些缺点。在一些场景下,仍然适合使用MySQL这类关系数据库,特别是对于需要复杂的事务处理和强一致性要求的应用场景。 总的来说,HBase以其分布式海量存储、灵活的数据表结构和高性能的特点,成为NoSQL领域最具影响力的产品之一。然而,在实际应用中,需要根据具体的业务需求和数据特点来选择合适的数据库技术。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学大数据》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(68)

  • 最新
  • 精选
  • shangyu
    内存写操作 如何保证突然掉电的话不丢数据呢

    作者回复: 还有一个写操作日志记录数据,所以数据不会丢,但是宕机恢复需要时间,就是根据日志恢复数据,这段时间部分数据更新访问不到。

    2018-11-30
    6
    21
  • 足迹
    HBase是基于HDFS存储的,那实际应用中是不是应该每台DataNode节点安装一个Region?

    作者回复: 每个DataNode安装多个hregion

    2018-12-09
    2
    10
  • Geek_c991e0
    老是,所有的请求都会先到HMaster,HMaster是不是也要多台机器才行,要不压力太大吧。如果多台主从是不是又会有同步的问题

    作者回复: key按照区间分片,所以第一次请求后,这个key所在的分片信息就会缓存在client,所以并不需要每次请求组都先到HMaster,但是HMaster还是需要很多台机器,一则是为了应付访问压力,但是主要是为了高可用,当主HMaster宕机后,可选举新的主HMaster出来。

    2019-07-09
    2
    7
  • M
    老师文中的读写都是通过HMaster获取HRegionServer的地址,再进行读写操作。怎么和我在其他地方学的不一样。不是应该通过zk查询的吗?

    作者回复: zk查询哪个master是主master。 如果直接查询zk地址,HBASE的设计目标是支持万亿级数据,zk根本存储不来。

    2018-11-29
    3
    7
  • 姜戈
    针对问题:是不是列族不能太多,会影响IO

    作者回复: 列族个数不会影响io

    2018-11-30
    5
  • 胡家鹏
    “HRegion 是 HBase 负责数据存储的主要进程,应用程序对数据的读写操作都是通过和 HRetion 通信完成。”没有看到HRetion

    作者回复: 拼写错误,尽快改正,谢谢纠正

    2018-11-29
    2
  • yang
    一台HRegionServer上可以有多个HRegion实例。 那请问: 1.一台HRegion 上 有多少个HFile啊? 2.HFile随着HRegion的迁移而迁移,意思是像HDFS的分片数据一样,复制在其他Data Node节点上一样,复制在其他HRegionServer上的HRegion上吗? 老师可以简单解释一下嘛?

    作者回复: hfile是一个hdfs文件,本身就分片后多个备份存储,不需要迁移。

    2018-11-30
    1
  • 大马猴
    提一个建议,大家尽量发一些跟技术主题相关的评论,这才是对作者劳动成果的尊重,也请作者少放那些吹捧和自说自话的评论,提高阅读体验。
    2018-11-29
    5
    101
  • Kaer
    1:列族不好查询,没有传统sql那样按照不同字段方便,只能根据rowkey查询,范围查询scan性能低。2:查询也没有mysql一样的走索引优化,因为列不固定 3:列族因为不固定,所以很难做一些业务约束,比如uk等等。4:做不了事务控制
    2018-11-29
    83
  • special
    看了十多篇文章了,大都是从大数据领域相关技术的特点,原理及应用场景等方面来阐述,讲得很不错,不过有不少内容需要具备一定的大数据实践及理论基础才能很好的吸收,文章没有针对大数据相关框架或工具的实践介绍,比如环境搭建,操作使用等。这也可以理解,这些放在文章中进行介绍也不大合适。 我最近学习了大数据快一年了,对于大数据领域的常用工具,如hdfs,hbase,mapreduce,yarn,hive,sqoop,pig,flume,storm,spark等的实践内容,如环境搭建,架构原理,基本操作,Java基本编程等,做了总结,全部以文章的形式发表在个人公众号里:程序猿的修身养性,有兴趣的朋友可以关注下,一起交流学习!
    2018-12-21
    2
    37
收起评论
显示
设置
留言
68
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部