第9讲分布式开源数据库HBASE.ppt

上传人:b****2 文档编号:2122997 上传时间:2022-10-27 格式:PPT 页数:67 大小:5.01MB
下载 相关 举报
第9讲分布式开源数据库HBASE.ppt_第1页
第1页 / 共67页
第9讲分布式开源数据库HBASE.ppt_第2页
第2页 / 共67页
第9讲分布式开源数据库HBASE.ppt_第3页
第3页 / 共67页
第9讲分布式开源数据库HBASE.ppt_第4页
第4页 / 共67页
第9讲分布式开源数据库HBASE.ppt_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

第9讲分布式开源数据库HBASE.ppt

《第9讲分布式开源数据库HBASE.ppt》由会员分享,可在线阅读,更多相关《第9讲分布式开源数据库HBASE.ppt(67页珍藏版)》请在冰豆网上搜索。

第9讲分布式开源数据库HBASE.ppt

第第99讲讲分布式开源数据库分布式开源数据库HBASEHBASEHadoop家族家族PigZookeeperHbaseHiveSqoopAvroChukwaCassandrapigHadoop客客户户端端使用使用类类似于似于SQL的面向的面向数据流的数据流的语语言言PigLatinPigLatin可以完成排序,可以完成排序,过滤过滤,求和,聚,求和,聚组组,关,关联联等操作,可以支持自定等操作,可以支持自定义义函数函数Pig自自动动把把PigLatin映射映射为为Map-Reduce作作业业上上传传到集群运行,减少用到集群运行,减少用户编户编写写Java程序的苦程序的苦恼恼三种运行方式:

三种运行方式:

Gruntshell,脚本方式,嵌入式,脚本方式,嵌入式Hive数据数据仓库仓库工具。

可以工具。

可以把把Hadoop下的原始下的原始结结构化数据构化数据变变成成Hive中的中的表表支持一种与支持一种与SQL几乎几乎完全相同的完全相同的语语言言HiveQL。

除了不支持。

除了不支持更新、索引和事更新、索引和事务务,几,几乎乎SQL的其它特征都能的其它特征都能支持支持可以看成是从可以看成是从SQL到到Map-Reduce的映射器的映射器提供提供shell、JDBC/ODBC、Thrift、Web等接口等接口HbaseGoogleBigtable的开源实的开源实现现列式数据库列式数据库可集群化可集群化可以使用可以使用shell、web、api等多种方式访问等多种方式访问适合高读写(适合高读写(insert)的场)的场景景HQL查询语言查询语言NoSQL的典型代表产品的典型代表产品Hbase简简介介HBaseHBase是一个分布式的、面向列的开源数据库,该技术来是一个分布式的、面向列的开源数据库,该技术来源于源于ChangetalChangetal所撰写的所撰写的GoogleGoogle论文论文“BigtableBigtable:

一个结:

一个结构化数据的分布式存储系统构化数据的分布式存储系统”。

就像就像BigtableBigtable利用了利用了GoogleGoogle文件系统(文件系统(FileSystemFileSystem)所)所提供的分布式数据存储一样,提供的分布式数据存储一样,HBaseHBase在在HadoopHadoop之上提供了类之上提供了类似于似于BigtableBigtable的能力。

的能力。

HBaseHBase是是ApacheApache的的HadoopHadoop项目的子项目。

项目的子项目。

HBaseHBase不同于一般的关系数据库不同于一般的关系数据库,它是一个适合于非结构它是一个适合于非结构化数据存储的数据库化数据存储的数据库.另一个不同的是另一个不同的是HBaseHBase基于列的而不基于列的而不是基于行的模式是基于行的模式Hbase的数据管理HbaseHbase是一个分布式的、面向列的开源数据库。

不是一个分布式的、面向列的开源数据库。

不同于一般的关系数据库,是一个适合于非结构化数同于一般的关系数据库,是一个适合于非结构化数据存储的数据库。

据存储的数据库。

HbaseHbase是基于列的而不是基于行的模式。

是基于列的而不是基于行的模式。

HbaseHbase是一个稀疏的、长期存储的、多维度的排序是一个稀疏的、长期存储的、多维度的排序映射表,在这张表中包括了映射表,在这张表中包括了行关键字、列关键字和行关键字、列关键字和时间戳。

每个值是一个字符数组,数据都是字符串,时间戳。

每个值是一个字符数组,数据都是字符串,没有类型。

没有类型。

HbaseHbase中表的特点:

中表的特点:

大:

一个表可以有上亿行、上百万列大:

一个表可以有上亿行、上百万列面向列:

面向列(族)的存储和权限控制,列(族)面向列:

面向列(族)的存储和权限控制,列(族)独立检索。

独立检索。

稀疏:

对于为空的列,并不占用存储空间。

稀疏:

对于为空的列,并不占用存储空间。

BigTable的想法的想法学生表的例子学生表的例子S(s#,sn,sd,sa)存放为关系的学生表存放为关系的学生表以以bigtable方式存放学生表方式存放学生表Bigtable:

无所不包的大表无所不包的大表Hbase逻辑逻辑模型模型以表的形式存放数据以表的形式存放数据表由行与列组成,每个列属于某个列族,由行和列确定的存储表由行与列组成,每个列属于某个列族,由行和列确定的存储单元称为元素单元称为元素每个元素保存了同一份数据的多个版本,由时间戳来标识区分每个元素保存了同一份数据的多个版本,由时间戳来标识区分行行键键行键是数据行在表里的唯一标识,并作为检索记录的主键行键是数据行在表里的唯一标识,并作为检索记录的主键访问表里的行只有三种方式访问表里的行只有三种方式1通过单个行键访问通过单个行键访问2给定行键的范围访问给定行键的范围访问3全表扫描全表扫描行键可以是最大长度不超过行键可以是最大长度不超过64KB的任意字符串,并按照字典序的任意字符串,并按照字典序存储存储对于经常要一起读取的行,要对行键值精心设计,以便它们能放对于经常要一起读取的行,要对行键值精心设计,以便它们能放在一起存储在一起存储列族与列列族与列列表示列表示为为:

Hbase在磁在磁盘盘上按照列族存上按照列族存储储数据,数据,这这种列式数据种列式数据库库的的设设计计非常适合于数据分析的情形非常适合于数据分析的情形列族里的元素最好具有相同的列族里的元素最好具有相同的读读写方式(例如等写方式(例如等长长的字符的字符串),以提高性能串),以提高性能时间时间戳戳对应对应每次数据操作的每次数据操作的时间时间,可由系,可由系统统自自动动生成,也可以由生成,也可以由用用户显户显式的式的赋值赋值Hbase支持两种数据版本回收方式:

支持两种数据版本回收方式:

1每个数据每个数据单单元,只存元,只存储储指定个数的最新版本指定个数的最新版本2保存指定保存指定时间长时间长度的版本(例如度的版本(例如7天)天)常常见见的客的客户户端端时间查询时间查询:

“某个某个时时刻起的最新数据刻起的最新数据”或或“给给我我全部版本的数据全部版本的数据”元素由元素由行行键键,列族,列族:

限定符,限定符,时间时间戳唯一决定戳唯一决定元素以字元素以字节码节码形式存放,没有形式存放,没有类类型之分型之分Hbase物理模型物理模型Hmaster主服务器HBase每时每刻只有一个每时每刻只有一个Hmaster主服务器程序在运行,只主服务器程序在运行,只维护表和维护表和region的元数据。

作用:

的元数据。

作用:

为为Regionserver分配分配Region负责负责Regionserver的负载均衡的负载均衡发现失效的发现失效的Regionserver并重新分配其上的并重新分配其上的RegionGFS上的垃圾文件回收上的垃圾文件回收处理处理schema更新请求更新请求Region和和Region服务器服务器表在行方向上,按照行键范围划分成若干的表在行方向上,按照行键范围划分成若干的Region每个表最初只有一个每个表最初只有一个region,当记录数增加到超过某个阈值时,当记录数增加到超过某个阈值时,开始分裂成两个开始分裂成两个regioRegion是是HBase中分布式存储和负载均衡的最小单元。

中分布式存储和负载均衡的最小单元。

物理上所有数据存放在物理上所有数据存放在HDFS,由,由Region服务器提供服务器提供region的管理的管理一台物理节点只能跑一个一台物理节点只能跑一个HRegionServer一个一个Hregionserver可以管理多个可以管理多个Region实例实例一个一个Region实例包括实例包括Hlog日志和存放数据的日志和存放数据的StoreHmaster作为总控节点作为总控节点Zookeeper负责调度负责调度HLog用于灾用于灾难难恢复恢复预预写式日志,写式日志,记录记录所有更新操作,操作先所有更新操作,操作先记录进记录进日志,数日志,数据才会写入据才会写入-ROOT-和和.META.表表HBase中有两张特殊的中有两张特殊的Table,-ROOT-和和.META.META.:

记录了用户表的:

记录了用户表的Region信息,信息,.META.可以有可以有多个多个regoin-ROOT-:

记录了:

记录了.META.表的表的Region信息,信息,-ROOT-只只有一个有一个regionZookeeper中记录了中记录了-ROOT-表的表的locationMemstore与与storefile一个一个region由多个由多个store组成,每个组成,每个store包含一个列族的所包含一个列族的所有数据有数据Store包括位于把内存的包括位于把内存的memstore和位于硬盘的和位于硬盘的storefile写操作先写入写操作先写入memstore,当,当memstore中的数据量达到某中的数据量达到某个阈值,个阈值,Hregionserver会启动会启动flashcache进程写入进程写入storefile,每次写入形成单独一个,每次写入形成单独一个storefile当当storefile文件的数量增长到一定阈值后,系统会进行合并,文件的数量增长到一定阈值后,系统会进行合并,在合并过程中会进行版本合并和删除工作,形成更大的在合并过程中会进行版本合并和删除工作,形成更大的storefile当当storefile大小超过一定阈值后,会把当前的大小超过一定阈值后,会把当前的region分割为分割为两个,并由两个,并由Hmaster分配到相应的分配到相应的region服务器,实现负服务器,实现负载均衡载均衡客户端检索数据时,先在客户端检索数据时,先在memstore找,找不到再找找,找不到再找storefile图解图解HbasevsOracle索引不同造成行为的差异索引不同造成行为的差异Hbase适合大量插入同时又有读的情况适合大量插入同时又有读的情况Hbase的瓶颈是硬盘传输速度,的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道的瓶颈是硬盘寻道时间时间Hbase很适合寻找按照时间排序很适合寻找按照时间排序topn的场景的场景传统数据库的行式存储传统数据库的行式存储数据存放在数据文件内数据存放在数据文件内数据文件的基本组成单位:

块数据文件的基本组成单位:

块/页页块内结构:

块头、数据区块内结构:

块头、数据区行式存储的问题行式存储的问题读某个列必须读入整行读某个列必须读入整行行不等长,修改数据可能导致行迁移行不等长,修改数据可能导致行迁移行数据较多时可能导致行链行数据较多时可能导致行链Oracle行式存储的访问路径行式存储的访问路径全表扫描全表扫描行标识访问行标识访问行标识访问:

行标识访问:

B树索引树索引B树索引原理:

结点树索引原理:

结点B树索引原理:

树形树索引原理:

树形利用利用B树进行查询树进行查询accesspathB树插入树插入分裂结点分裂结点B树删除树删除合并结点合并结点B树索引的弱点树索引的弱点空间代价,创建时间代价,维护代价空间代价,创建时间代价,维护代价重复值多时影响效率重复值多时影响效率BigTable的的LSM索引索引网络参考资源网络参考资源http:

/http:

/zookeeper.apache.org/doc/r3.3.2/zookeeperOver.htmlHbase和和Hadoop的版本对应的版本对应Hbase和和Hadoop的版本对应的版本对应Hbase安装:

单机模式安装:

单机模式下载及解压下载及解压hbase安装包安装包修改修改conf/hbase-env.sh脚本,设置环境变量脚本,设置环境变量编辑编辑hbase-site.xml进行配置进行配置启

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1