分布式开源数据库HBASE

上传人:ji****72 文档编号:50944209 上传时间:2018-08-11 格式:PPT 页数:67 大小:4.99MB
返回 下载 相关 举报
分布式开源数据库HBASE_第1页
第1页 / 共67页
分布式开源数据库HBASE_第2页
第2页 / 共67页
分布式开源数据库HBASE_第3页
第3页 / 共67页
分布式开源数据库HBASE_第4页
第4页 / 共67页
分布式开源数据库HBASE_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《分布式开源数据库HBASE》由会员分享,可在线阅读,更多相关《分布式开源数据库HBASE(67页珍藏版)》请在金锄头文库上搜索。

1、第9讲 分布式开源数据库HBASE Hadoop家族 Pig Zookeeper Hbase Hive Sqoop Avro Chukwa Cassandra pig Hadoop客户户端 使用类类似于SQL的面向数 据流的语语言Pig Latin Pig Latin可以完成排序, 过滤过滤 ,求和,聚组组,关联联 等操作,可以支持自定义义函 数 Pig自动动把Pig Latin映射 为为Map-Reduce作业业上传传到 集群运行,减少用户编户编 写 Java程序的苦恼恼 三种运行方式:Grunt shell,脚本方式,嵌入式 Hive 数据仓库仓库 工具。可以 把Hadoop下的原始结结构

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

3、“Bigtable:一个结构化 数据的分布式存储系统”。 就像Bigtable利用了Google文件系统(File System)所提 供的分布式数据存储一样,HBase在Hadoop之上提供了类似于 Bigtable的能力。 HBase是Apache的Hadoop 项目的子项目。 HBase不同于一般的关系数据库,它是一个适合于非结构化 数据存储的数据库.另一个不同的是HBase基于列的而不是基 于行的模式 Hbase的数据管理 Hbase是一个分布式的、面向列的开源数据库。不同 于一般的关系数据库,是一个适合于非结构化数据 存储的数据库。 Hbase是基于列的而不是基于行的模式。 Hbas

4、e是一个稀疏的、长期存储的、多维度的排序映 射表,在这张表中包括了行关键字、列关键字和时 间戳。每个值是一个字符数组,数据都是字符串, 没有类型。 Hbase中表的特点: 大:一个表可以有上亿行、上百万列 面向列:面向列(族)的存储和权限控制,列(族 )独立检索。 稀疏:对于为空的列,并不占用存储空间。Big Table的想法 学生表的例子S(s#,sn,sd,sa) 存放为关系的学生表 以bigtable方式存放学生表 Bigtable: 无所不包的大表 Hbase逻辑逻辑 模型 以表的形式存放数据 表由行与列组成,每个列属于某个列族,由行和列确定的存储 单元称为元素 每个元素保存了同一份数

5、据的多个版本,由时间戳来标识区分 行键键 行键是数据行在表里的唯一标识,并作为检索记录的主键 访问表里的行只有三种方式 1 通过单个行键访问 2 给定行键的范围访问 3 全表扫描 行键可以是最大长度不超过64KB的任意字符串,并按照字典序存 储 对于经常要一起读取的行,要对行键值精心设计,以便它们能放 在一起存储 列族与列 列表示为为: Hbase在磁盘盘上按照列族存储储数据,这这种列式数据库库的设设 计计非常适合于数据分析的情形 列族里的元素最好具有相同的读读写方式(例如等长长的字符串 ),以提高性能 时间时间 戳 对应对应 每次数据操作的时间时间 ,可由系统统自动动生成,也可以由 用户显户

6、显 式的赋值赋值 Hbase支持两种数据版本回收方式:1 每个数据单单元,只存 储储指定个数的最新版本 2 保存指定时间长时间长 度的版本(例如7 天) 常见见的客户户端时间查询时间查询 :“某个时时刻起的最新数据”或“给给我 全部版本的数据” 元素由 行键键,列族:限定符,时间时间 戳唯一决定 元素以字节码节码 形式存放,没有类类型之分 Hbase物理模型 Hmaster主服务器 HBase每时每刻只有一个Hmaster主服务器程序在运行,只维 护表和region的元数据。作用: 为Region server分配 Region 负责Region server的负载均衡 发现失效的Region

7、 server并重新分配其上的Region GFS上的垃圾文件回收 处理schema更新请求Region和Region服务器 表在行方向上,按照行键范围划分成若干的Region 每个表最初只有一个region,当记录数增加到超过某个阈值时 ,开始分裂成两个regio Region是HBase中分布式存储和负载均衡的最小单元。 物理上所有数据存放在HDFS,由Region服务器提供region的 管理 一台物理节点只能跑一个HRegionServer 一个Hregionserver可以管理多个Region实例 一个Region实例包括Hlog日志和存放数据的Store Hmaster作为总控节点

8、 Zookeeper负责调度 HLog 用于灾难难恢复 预预写式日志,记录记录 所有更新操作,操作先记录进记录进 日志,数 据才会写入 -ROOT- 和 .META. 表 HBase中有两张特殊的Table,-ROOT-和.META. .META.:记录了用户表的Region信息,.META.可以有 多个regoin -ROOT-:记录了.META.表的Region信息,-ROOT-只 有一个region Zookeeper中记录了-ROOT-表的location Memstore与storefile 一个region由多个store组成,每个store包含一个列族的所 有数据 Store包括

9、位于把内存的memstore和位于硬盘的storefile 写操作先写入memstore,当memstore中的数据量达到某 个阈值,Hregionserver会启动flashcache进程写入 storefile,每次写入形成单独一个storefile 当storefile文件的数量增长到一定阈值后,系统会进行合并 ,在合并过程中会进行版本合并和删除工作,形成更大的 storefile 当storefile大小超过一定阈值后,会把当前的region分割为 两个,并由Hmaster分配到相应的region服务器,实现负载 均衡 客户端检索数据时,先在memstore找,找不到再找 storef

10、ile 图解 Hbase vs Oracle 索引不同造成行为的差异 Hbase适合大量插入同时又有读的情况 Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时 间 Hbase很适合寻找按照时间排序top n的场景 传统数据库的行式存储 数据存放在数据文件内 数据文件的基本组成单位:块/页 块内结构:块头、数据区 行式存储的问题 读某个列必须读入整行 行不等长,修改数据可能导致行迁移 行数据较多时可能导致行链 Oracle行式存储的访问路径 全表扫描 行标识访问 行标识访问:B树索引 B树索引原理:结点 B树索引原理:树形 利用B树进行查询access path B树插入分裂结点

11、B树删除合并结点 B树索引的弱点 空间代价,创建时间代价,维护代价 重复值多时影响效率 BigTable的LSM索引 网络参考资源 http:/ zookeeper/ http:/ http:/zookeeper.apache.org/doc/r3.3.2/zookeeperOver.html Hbase和Hadoop的版本对应 Hbase和Hadoop的版本对应 Hbase安装:单机模式 下载及解压hbase安装包 修改conf/hbase-env.sh脚本,设置环境变量 编辑hbase-site.xml进行配置 启动Hbase 验证Hmaster已经启动 进入shell 下载及解压Hbas

12、e安装包 修改hbase-env.sh 设置JAVA_HOME环境变量 配置hbase-site.xml 先创建用于存放数据的目录/home/grid/hbase-0.90.5/data 先创建用于存放数据的目录 /home/grid/hbase-0.90.5/data 启动Hbase及验证 Hbase安装:伪分布模式 在单点模式的基础上继续 编辑 hbase-env.sh增加HBASE_CLASSPATH环境变量 编辑hbase-site.xml打开分布模式 覆盖hadoop核心jar包 启动hbase 验证启动 编辑 hbase-env.sh增加 HBASE_CLASSPATH环境变量 用

13、于帮助hbase找到hadoop 编辑hbase-site.xml打开分布模式 覆盖hadoop核心jar包 这是关键一步,主要目的是防止因为hbase和hadoop版本不同 出现兼容问题,造成hmaster启动异常 启动hbase并验证 Hbase安装:完全分布模式 配置hosts,确保涉及的主机名均可以解析为ip 编辑hbase-env.xml 编辑hbase-site.xml 编辑regionservers文件 把Hbase复制到其它节点 启动Hbase 验证启动 Web管理界面 Shell Shell命令帮助 查询数据库状态 hbase(main):024:0status 3 serv

14、ers, 0 dead,1.0000 average load 查询数据库版本 hbase(main):025:0version 0.90.4, r1150278,Sun Jul 24 15:53:29 PDT 2011 创建表 hbase(main):011:0create member,member_id,address,info 0 row(s) in 1.2210seconds 查看表信息 hbase(main):012:0list TABLE member 1 row(s) in 0.0160seconds hbase(main):006:0describe member DESCRIPTION ENABLED NAME = member, FAMILIES = NAME= address, BLOOMFILTER = NONE, REPLICATION_SCOPE = 0, true VERSIONS = 3, COMPRESSION = NONE,TTL = 2147483647, BLOCKSIZE = 65536, IN_MEMORY = false, BLOCKCACHE = true

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号