从0开始学大数据
李智慧
同程艺龙交通首席架构师,前Intel大数据架构师,《大型网站技术架构》作者
立即订阅
14333 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么说每个软件工程师都应该懂大数据技术?
免费
预习模块 (3讲)
预习 01 | 大数据技术发展史:大数据的前世今生
预习 02 | 大数据应用发展史:从搜索引擎到人工智能
预习 03 | 大数据应用领域:数据驱动一切
模块一 Hadoop大数据原理与架构 (7讲)
04 | 移动计算比移动数据更划算
05 | 从RAID看垂直伸缩到水平伸缩的演化
06 | 新技术层出不穷,HDFS依然是存储的王者
07 | 为什么说MapReduce既是编程模型又是计算框架?
08 | MapReduce如何让数据完成一次旅行?
09 | 为什么我们管Yarn叫作资源调度框架?
10 | 模块答疑:我们能从Hadoop学到什么?
模块二 大数据生态体系主要产品原理与架构 (7讲)
11 | Hive是如何让MapReduce实现SQL操作的?
12 | 我们并没有觉得MapReduce速度慢,直到Spark出现
13 | 同样的本质,为何Spark可以更高效?
14 | BigTable的开源实现:HBase
15 | 流式计算的代表:Storm、Flink、Spark Streaming
16 | ZooKeeper是如何保证数据一致性的?
17 | 模块答疑:这么多技术,到底都能用在什么场景里?
模块三 大数据开发实践 (8讲)
18 | 如何自己开发一个大数据SQL引擎?
19 | Spark的性能优化案例分析(上)
20 | Spark的性能优化案例分析(下)
21 | 从阿里内部产品看海量数据处理系统的设计(上):Doris的立项
22 | 从阿里内部产品看海量数据处理系统的设计(下):架构与创新
23 | 大数据基准测试可以带来什么好处?
24 | 从大数据性能测试工具Dew看如何快速开发大数据系统
25 | 模块答疑:我能从大厂的大数据开发实践中学到什么?
模块四 大数据平台与系统集成 (6讲)
26 | 互联网产品 + 大数据产品 = 大数据平台
27 | 大数据从哪里来?
28 | 知名大厂如何搭建大数据平台?
29 | 盘点可供中小企业参考的商业大数据平台
30 | 当大数据遇上物联网
31 | 模块答疑:为什么大数据平台至关重要?
模块五 大数据分析与运营 (5讲)
32 | 互联网运营数据指标与可视化监控
33 | 一个电商网站订单下降的数据分析案例
34 | A/B测试与灰度发布必知必会
35 | 如何利用大数据成为“增长黑客”?
36 | 模块答疑:为什么说数据驱动运营?
模块六 大数据算法 (6讲)
37 | 如何对数据进行分类和预测?
38 | 如何发掘数据之间的关系?
39 | 如何预测用户的喜好?
40 | 机器学习的数学原理是什么?
41 | 从感知机到神经网络算法
42 | 模块答疑:软件工程师如何进入人工智能领域?
智慧写给你的寄语 (1讲)
所有的不确定都是机会——智慧写给你的新年寄语
结束语 (2讲)
结束语 | 未来的你,有无限可能
第2季回归丨大数据之后,让我们回归后端
从0开始学大数据
登录|注册

14 | BigTable的开源实现:HBase

李智慧 2018-11-29
我们知道,Google 发表 GFS、MapReduce、BigTable 三篇论文,号称“三驾马车”,开启了大数据的时代。那和这“三驾马车”对应的有哪些开源产品呢?我们前面已经讲过了 GFS 对应的 Hadoop 分布式文件系统 HDFS,以及 MapReduce 对应的 Hadoop 分布式计算框架 MapReduce,今天我们就来领略一下BigTable 对应的 NoSQL 系统 HBase,看看它是如何大规模处理海量数据的。
在计算机数据存储领域,一直是关系数据库(RDBMS)的天下,以至于在传统企业的应用领域,许多应用系统设计都是面向数据库设计,也就是先设计数据库然后设计程序,从而导致关系模型绑架对象模型,并由此引申出旷日持久的业务对象贫血模型与充血模型之争。
业界为了解决关系数据库的不足,提出了诸多方案,比较有名的是对象数据库,但是这些数据库的出现似乎只是进一步证明关系数据库的优越而已。直到人们遇到了关系数据库难以克服的缺陷——糟糕的海量数据处理能力及僵硬的设计约束,局面才有所改善。从 Google 的 BigTable 开始,一系列的可以进行海量数据存储与访问的数据库被设计出来,更进一步说,NoSQL 这一概念被提了出来。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0开始学大数据》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(52)

  • 大马猴
    提一个建议,大家尽量发一些跟技术主题相关的评论,这才是对作者劳动成果的尊重,也请作者少放那些吹捧和自说自话的评论,提高阅读体验。
    2018-11-29
    51
  • Kaer
    1:列族不好查询,没有传统sql那样按照不同字段方便,只能根据rowkey查询,范围查询scan性能低。2:查询也没有mysql一样的走索引优化,因为列不固定 3:列族因为不固定,所以很难做一些业务约束,比如uk等等。4:做不了事务控制
    2018-11-29
    37
  • 纯齐
    文中提到hbase数据的修改在内存中处理,就是说如果机器断电的话数据会丢失,请问hbase有没有措施来保证数据不丢失?
    2018-11-29
    14
  • special
    看了十多篇文章了,大都是从大数据领域相关技术的特点,原理及应用场景等方面来阐述,讲得很不错,不过有不少内容需要具备一定的大数据实践及理论基础才能很好的吸收,文章没有针对大数据相关框架或工具的实践介绍,比如环境搭建,操作使用等。这也可以理解,这些放在文章中进行介绍也不大合适。
    我最近学习了大数据快一年了,对于大数据领域的常用工具,如hdfs,hbase,mapreduce,yarn,hive,sqoop,pig,flume,storm,spark等的实践内容,如环境搭建,架构原理,基本操作,Java基本编程等,做了总结,全部以文章的形式发表在个人公众号里:程序猿的修身养性,有兴趣的朋友可以关注下,一起交流学习!
    2018-12-21
    1
    13
  • 夏一Sunny
    对于LSM树的合并和高效,还是不太理解。
    2018-11-29
    13
  • 伊森
    李老师,hbase对olap的分析场景支持不行吧?这也是我正想问的问题,一般都咋么解决,那种可变化的数据的实时统计分析场景的?
    2018-11-29
    8
  • Jowin
    列族数据组织方式的缺点:
    1)在需要读取整条记录的时候,需要访问多个列族组合数据,效率会降低,可以通过字段冗余来解决一些问题。
    2)只能提供Key值和全表扫描两种访问方式,很多情况下需要自己建耳机索引。
    3)数据是非结构化,或者说是半结构化的,应用在处理数据时要费点心,不像关系数据库那么省心。

    在数据完全结构化,很少变动,需要事务的场景使用Mysql等关系数据库比较合适。
    2018-12-01
    7
  • shangyu
    内存写操作 如何保证突然掉电的话不丢数据呢

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

    2018-11-30
    1
    7
  • 足迹
    hbase不支持二级索引,只能通过类似es这样的组件来实现。还是就是事务处理。所以一般oltp还是选择关系型数据库。
    2018-11-29
    3
  • 毛毛
    外行人强答一下。
    我记得parquet文件的大小和列数有很大关系。如果可以随便增加列,文件会变得很大,增加的列可能包含的数据很少。
    个人感觉这种可拓展性强的数据库更适合类似于电商的情况多变的业务。
    2018-11-29
    3
  • 往事随风,顺其自然
    LSM树的合并过程是咋样的,还有分区是怎么分的,存储到不同节点上
    2018-11-29
    3
  • 暴风雪
    根据老师的说法,LSM数据先是存储在内存中,当到达阈值的时候才会和磁盘合并(个人理解为序列化),当时如何保证断电的时候,内存中的数据会丢失的问题?
    2018-12-02
    2
  • 落叶飞逝的恋
    其实所谓的列组就是相当于定义一个范围宽泛一点的名称定义的JSON。比如课程成绩。就是一个宽泛的定义,使用这种就是能方便的进行动态扩展。不像传统的关系型数据库就需要定义数学成绩、英语成绩等具体科目字段。但是虽然列祖能解决动态扩展,但是对于查询不友好,特别是查询单科成绩,需要解析这个课程成绩的JSON,再筛选出单科。而传统关系型数据库就能精准快速的查询出来。这两个可以互取长处使用。
    2018-11-30
    2
  • 胡家鹏
    “HRegion 是 HBase 负责数据存储的主要进程,应用程序对数据的读写操作都是通过和 HRetion 通信完成。”没有看到HRetion

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

    2018-11-29
    2
  • why
    1,什么是HBASE?
    Google三驾马车之BigTable的开源实现,配合HDFS,实现了数据的分布式海量存储。
    2,为什么会出现HBASE?
    传统关系型数据库,关系模型绑架对象模型、僵硬的约束设计及设计范式使得存储数据包含了一部分业务逻辑,而且糟糕的海量数据处理能力引出了各种NoSql设计,HBASE简单粗暴,数据库就是存储数据,业务由应用去处理。
    3,HBASE设计特点?
    a,可伸缩
    HBASE以key的区域进行分片形成HRegion(HBASE数据管理的基本单位),一个HRegion中数据量超过阈值,会一分为二,并在集群中进行负载均衡。
    数据读写:application Zookeeper HMaster HRegionServer HRegion HFile
    b,可扩展数据模型
    列族设计,具体字段(column)在写入时指定,轻松支持百万字段的扩展
    c,高性能存储
    数据写入时通过log连续写入,异步与磁盘上的多个LSM树进行合并。
    数据写操作(i,u,d)都在内存中进行(也是一颗排序树),超过内存阈值,与磁盘上最新的LSM树合并
    2019-05-06
    1
  • Tomcat
    批处理是对历史大量数据的离线计算处理,而流计算则是对实时流入的数据进行实时响应。

    Storm模仿消息队列的处理方式,并进行了也许和技术的抽象,使得业务和技术分离,这是一种典型的架构设计方式。而且,storm 也采用了主从架构默契,很好的贯彻了分布式的典型思路。

    Spark Stream 主要是使用了Spark Stream 的数据分段作用,如果在分片的时间足够短,那么数据就不会太大,然后将分段分片后的少量数据,提交给Spark 处理,就会在毫秒级得到结果。

    Flink的主要思想则跟Spark 反过来,也就是说,在Flink的世界里,流是一等公民,而批处理只能退而其次。
    2019-04-12
    1
  • 足迹
    HBase是基于HDFS存储的,那实际应用中是不是应该每台DataNode节点安装一个Region?

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

    2018-12-09
    1
  • Link
    列族存储,对于复杂的条件查询、数据筛选支持不足。还有就是数据的分组聚合、求和等的操作。
    2018-12-09
    1
  • 风中有个肉做的人
    传统业务还是使用关系数据库,列结构没啥使用经验,想想聚合计算不方便
    2018-12-04
    1
  • 杰之7
    通过本节学习了代表NoSQL的Hbase,Hbase可通过HDFS分区对海量数据进行分布式存储,具有可伸缩的特性。同时,具有MySQL等关系数据库不具备的可拓展模型。Hbase通过LSM树结构满足高性能储存。最后,我认为关系数据库发展到今天依然是数据库的主流,具备了其他类型的数据库不具有的特征,所以NoSQL数据库是关系数据库的补充,而不是替代。
    2018-12-01
    1
收起评论
52
返回
顶部