提纲 41概述 42 HBase访问接口 4.3 HBase数据模型 44 HBase的实现原理 45 HBase运行机制 46 HBase应用方案 4.7 HBase编程实践 本PPT是如下教材的配套讲义 《大数据技术原理与应用 —概念、存储、处理、分析与应用》 (2017年2月第2版) SBN:978-7-115443304 厦门大学林子雨编著,人民邮电出版社 欢迎访问《大数据技术原理与应用》教材官方网站: http://dblab.xmu.edu.cn/post/bigdata 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 提纲 • 4.1 概述 • 4.2 HBase访问接口 • 4.3 HBase数据模型 • 4.4 HBase的实现原理 • 4.5 HBase运行机制 • 4.6 HBase应用方案 • 4.7 HBase编程实践 欢迎访问《大数据技术原理与应用》教材官方网站: http://dblab.xmu.edu.cn/post/bigdata 本PPT是如下教材的配套讲义: 《大数据技术原理与应用 ——概念、存储、处理、分析与应用》 (2017年2月第2版) ISBN:978-7-115-44330-4 厦门大学 林子雨 编著,人民邮电出版社
4.1概述 ·4.1.1 从 Big table说起 4.12 HBase简介 4.1.3 HBase与传统关系数据库的对比分析 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1 概述 • 4.1.1 从BigTable说起 • 4.1.2 HBase简介 • 4.1.3 HBase与传统关系数据库的对比分析
41.1从 Big table说起 Big Table是一个分布式存储系统 Big Table起初用于解决典型的互联网搜索问题 建立互联网索引 1爬虫持续不断地抓取新页面,这些页面每页一行地存储到 Big Table里 2 MapReduce计算作业运行在整张表上,生成索引,为网络搜索应用做准备 搜索互联网 3用户发起网络搜索请求 4网络搜索应用查询建立好的索引,从 Big Table得到网页 5搜索结果提交给用户 contents anchorcnnsi.com""anchormylook.ca <humby com. cnn WWW " CNN "cNn.cOmktg 网页在 Big Table中的存储样例 大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.1从BigTable说起 BigTable是一个分布式存储系统 BigTable起初用于解决典型的互联网搜索问题 •建立互联网索引 1 爬虫持续不断地抓取新页面,这些页面每页一行地存储到BigTable里 2 MapReduce计算作业运行在整张表上,生成索引,为网络搜索应用做准备 •搜索互联网 3 用户发起网络搜索请求 4 网络搜索应用查询建立好的索引,从BigTable得到网页 5 搜索结果提交给用户 网页在BigTable中的存储样例
●411从 Big Table说起 Big Table是一个分布式存储系统 利用谷歌提出的 MapReduce分布式并行计算模型来处理海量数据 使用谷歌分布式文件系统GFS作为底层数据存储 采用 Chubby提供协同服务管理 可以扩展到PB级别的数据和上千台机器,具备广泛应用性、可扩展性、 高性能和高可用性等特点 谷歌的许多项目都存储在 Big Table中,包括搜索、地图、财经、打印、 社交网站 Orkut、视频共享网站 Youtube和博客网站 Blogger等 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.1从BigTable说起 •BigTable是一个分布式存储系统 •利用谷歌提出的MapReduce分布式并行计算模型来处理海量数据 •使用谷歌分布式文件系统GFS作为底层数据存储 •采用Chubby提供协同服务管理 •可以扩展到PB级别的数据和上千台机器,具备广泛应用性、可扩展性、 高性能和高可用性等特点 •谷歌的许多项目都存储在BigTable中,包括搜索、地图、财经、打印、 社交网站Orkut、视频共享网站YouTube和博客网站Blogger等
4.12 HBase简介 HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌 Big Table的 开源实现,主要用来存储非结构化和半结构化的松散数据。 HBase的目标是处理非常 庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和 数百万列元素组成的数据表 Hadoop生态系统 ETL工具 BI报表 RDBMS Pig Hi ve Scoop Mal pReduce HBase HDFS (Hadoop Distributed File System) 图41 Hadoop生态系统中 HBase与其他部分的关系 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2HBase简介 HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的 开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常 庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和 数百万列元素组成的数据表 ETL工具 BI报表 RDBMS Pig Hive Sqoop MapReduce HBase HDFS (Hadoop Distributed File System) Zookeeper Avro Hadoop生态系统 图4-1 Hadoop生态系统中HBase与其他部分的关系
4.12 HBase简介 表4-1 HBase和 BigTable的底层技术对应关系 HBase Bigtable 文件存储系统 GFS HDFS 海量数据处理 Map reduce Hadoop Map reduce 协同服务管理 Chubby Zookeeper 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2HBase简介 表4-1 HBase和BigTable的底层技术对应关系 BigTable HBase 文件存储系统 GFS HDFS 海量数据处理 MapReduce Hadoop MapReduce 协同服务管理 Chubby Zookeeper
4.12 HBase简介 关系数据库已经流行很多年,并且 Hadoop已经有了HDFS和 MapReduce, 为什么需要 HBase? Hadoop可以很好地解决大规模数据的离线批量处理问题,但是, 受限于 Hadoop MapReduce编程框架的髙延迟数据处理机制,使 得 Hadoop无法满足大规模数据实时处理应用的需求 HDFS面向批量访问模式,不是随机访问模式 传统的通用关系型数据库无法应对在数据规模剧增时导致的系统 扩展性和性能问题(分库分表也不能很好解决 ˆ传统关系数据库在数据结构变化时一般需要停机维护;空列浪费 存储空间 -因此,业界出现了一类面向半结构化数据存储和处理的高可扩展、 低写入/査询延迟的系统,例如,键值数据库、文档数据库和列族 数据库(如 Big Table和 HBase等) HBase已经成功应用于互联网服务领域和传统行业的众多在线式 数据分析处理系统中 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.2HBase简介 关系数据库已经流行很多年,并且Hadoop已经有了HDFS和MapReduce, 为什么需要HBase? •Hadoop可以很好地解决大规模数据的离线批量处理问题,但是, 受限于Hadoop MapReduce编程框架的高延迟数据处理机制,使 得Hadoop无法满足大规模数据实时处理应用的需求 •HDFS面向批量访问模式,不是随机访问模式 •传统的通用关系型数据库无法应对在数据规模剧增时导致的系统 扩展性和性能问题(分库分表也不能很好解决) •传统关系数据库在数据结构变化时一般需要停机维护;空列浪费 存储空间 •因此,业界出现了一类面向半结构化数据存储和处理的高可扩展、 低写入/查询延迟的系统,例如,键值数据库、文档数据库和列族 数据库(如BigTable和HBase等) •HBase已经成功应用于互联网服务领域和传统行业的众多在线式 数据分析处理系统中
●4.13 HBase与传统关系数据库的对比分析 HBase与传统的关系数据库的区别主要体现在以下几个方面: (1)数据类型:关系数据库采用关系模型,具有丰富的数据类型和 存储方式, HBase则采用了更加简单的数据模型,它把数据存储为未 经解释的字符串 (2)数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂 的多表连接。 HBase操作则不存在复杂的表与表之间的关系,只有简 单的插入、查询、删除、清空等,因为 HBase在设计上就避免了复杂 的表和表之间的关系 ·(3)存储模式:关系数据库是基于行模式存储的。 HBase是基于列 存储的,每个列族都由几个文件保存,不同列族的文件是分离的 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.3HBase与传统关系数据库的对比分析 • HBase与传统的关系数据库的区别主要体现在以下几个方面: • (1)数据类型:关系数据库采用关系模型,具有丰富的数据类型和 存储方式,HBase则采用了更加简单的数据模型,它把数据存储为未 经解释的字符串 • (2)数据操作:关系数据库中包含了丰富的操作,其中会涉及复杂 的多表连接。HBase操作则不存在复杂的表与表之间的关系,只有简 单的插入、查询、删除、清空等,因为HBase在设计上就避免了复杂 的表和表之间的关系 • (3)存储模式:关系数据库是基于行模式存储的。HBase是基于列 存储的,每个列族都由几个文件保存,不同列族的文件是分离的
●4.13 HBase与传统关系数据库的对比分析 · HBase与传统的关系数据库的区别主要体现在以下几个方面: (4)数据索引:关系数据库通常可以针对不同列构建复杂的多个索 引,以提高数据访问性能。 HBase只有一个索引 的设计, HBase中的所有访问方法,或者通过行键访问,或者通过行 键扫描,从而使得整个系统不会慢下来 (5)数据维护;在关系数据库中,更新操作会用最新的当前值去替 换记录中原来的旧值,旧值被覆盖后就不会存在。而在 HBase中执行 更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧 有的版本仍然葆 ·(6)可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也 比较有限。相反, HBase和 Big Table这些分布式数据库就是为了实现 深话的水平拉开的,能彭轻易地通过在集群中增加或者减少硬 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.1.3HBase与传统关系数据库的对比分析 • HBase与传统的关系数据库的区别主要体现在以下几个方面: • (4)数据索引:关系数据库通常可以针对不同列构建复杂的多个索 引,以提高数据访问性能。HBase只有一个索引——行键,通过巧妙 的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行 键扫描,从而使得整个系统不会慢下来 • (5)数据维护:在关系数据库中,更新操作会用最新的当前值去替 换记录中原来的旧值,旧值被覆盖后就不会存在。而在HBase中执行 更新操作时,并不会删除数据旧的版本,而是生成一个新的版本,旧 有的版本仍然保留 • (6)可伸缩性:关系数据库很难实现横向扩展,纵向扩展的空间也 比较有限。相反,HBase和BigTable这些分布式数据库就是为了实现 灵活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬 件数量来实现性能的伸缩
4.2 HBase访问接口 表4-2 HBase访问接口 类型 特点 场合 Native java api最常规和高效的访问方式适合 Hadoop MapReduce业 并行批处理 HBase表数据 HBase shell HBase的命令行工具,最适合HB管理使用 简单的接口 Thrift Gateway利用Th序列化技术,适合其他异构系统在线访问 支持C++、PHP、 PythonHBase表数据 等多种语言 REST Gateway 解除了语言限制 支持REST风格的 Http Api访问 HBase Pig 使用 Pig latin流式编程语|适合做数据统计 言来处理 HBase中的数据 Hiv 简单 当需要以类似SQL语言方式来 访问 HBase的时候 《大数据技术原理与应用(第2版 厦门大学计算机科学系 林子雨 ziyulin@xmu. edu
《大数据技术原理与应用(第2版)》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 4.2 HBase访问接口 表4-2 HBase访问接口 类型 特点 场合 Native Java API 最常规和高效的访问方式 适合Hadoop MapReduce作业 并行批处理HBase表数据 HBase Shell HBase的命令行工具,最 简单的接口 适合HBase管理使用 Thrift Gateway 利用Thrift序列化技术, 支持C++、PHP、Python 等多种语言 适合其他异构系统在线访问 HBase表数据 REST Gateway 解除了语言限制 支持REST风格的Http API访问 HBase Pig 使用Pig Latin流式编程语 言来处理HBase中的数据 适合做数据统计 Hive 简单 当需要以类似SQL语言方式来 访问HBase的时候