HBase 简介 (来自京东商城)

上传人:我*** 文档编号:134418521 上传时间:2020-06-05 格式:PPT 页数:50 大小:1.50MB
返回 下载 相关 举报
HBase 简介 (来自京东商城)_第1页
第1页 / 共50页
HBase 简介 (来自京东商城)_第2页
第2页 / 共50页
HBase 简介 (来自京东商城)_第3页
第3页 / 共50页
HBase 简介 (来自京东商城)_第4页
第4页 / 共50页
HBase 简介 (来自京东商城)_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《HBase 简介 (来自京东商城)》由会员分享,可在线阅读,更多相关《HBase 简介 (来自京东商城)(50页珍藏版)》请在金锄头文库上搜索。

1、HBase简介 数据部 桂宇 目录 HBase简介HBase体系结构HBase数据模型HBase提供的接口HBase优化HBase用途 HBase简介 Hadoop生态系统 HBase简介 HBase是一个分布式的 多版本的 面向列的开源数据库利用HadoopHDFS作为其文件存储系统 提供高可靠性 高性能 列存储 可伸缩 实时读写的数据库系统 利用HadoopMapReduce来处理HBase中的海量数据利用Zookeeper作为协同服务 HBase简介 HBase中表的特点大 一个表可以有上亿行 上百万列 列多时 插入变慢 面向列 面向列 族 的存储和权限控制 列 族 独立检索 稀疏 对于

2、为空 null 的列 并不占用存储空间 因此 表可以设计的非常稀疏 每个cell中的数据可以有多个版本 默认情况下版本号自动分配 是单元格插入时的时间戳 HBase中的数据都是字符串 没有类型 HBase特点 强一致性同一行数据的读写只在同一台RegionServer上进行水平伸缩Region的自动分裂以及Master的balance 只用增加Datanode机器即可增加容量 只用增加RegionServer机器即可增加读写吞吐量 HBase特点 行事务同一行的列的写入是原子的 ColumnOriented 三维有序SortedMap RowKey List SortedMap Column

3、List Value Timestamp rowKey ASC columnLabel ASC Version DESC value HBase特点 支持有限查询方式和一级索引仅支持单行事务仅支持三种查询方式 singlerowkey rangerowkey scanallrowsoftable 可通过hive等实现多表关联查询 仅基于rowkey的索引高性能随机写WAL WriteAheadLog HBase特点 和Hadoop无缝集成Hadoop分析后的结果可直接写入HBase 存放在HBase的数据可直接通过Hadoop来进行分析 HBase与RDBMS对比 目录 HBase简介HBas

4、e体系结构HBase数据模型HBase提供的接口HBase优化HBase用途 HBase体系结构 HBase体系结构 Client包含访问HBase的接口并维护cache来加快对HBase的访问Zookeeper保证任何时候 集群中只有一个master存贮所有Region的寻址入口 实时监控Regionserver的上线和下线信息 并实时通知给Master存储HBase的schema和table元数据Master为Regionserver分配region负责Regionserver的负载均衡发现失效的Regionserver并重新分配其上的region管理用户对table的增删改查操作Regi

5、onServerRegionserver维护region 处理对这些region的IO请求Regionserver负责切分在运行过程中变得过大的region ROOT 与 META 表 ROOT 表包含 META 表所在的区域列表 该表只会有一个HRegion Zookeeper中记录了 ROOT 表的location META 表包含所有的用户空间区域列表 以及RegionServer的服务器地址 Region定位 META 表的一行在内存中大约占用1KB 并且每个region限制为128MB 那么此三层结构可以保存的region数目为 128MB 1KB 128MB 1KB 2 34 个r

6、egion 目录 HBase简介HBase体系结构HBase数据模型HBase提供的接口HBase优化HBase用途 逻辑视图 物理视图 HBase以表的形式存储数据 表由行和列组成 列划分为若干个列族 rowfamily 逻辑视图 物理视图 HBase每个列族存储为一个Store HBase数据表中一些关键概念 Rowkey键ColumnFamily列族Cellqualifier列族修饰符 列 Timestamp时间戳Region区域 键Rowkey 表中行的键是字节数组 最大长度是64KB 任何字符串都可以作为键 表中的行根据行的键值进行排序 数据按照Rowkey的字节序 byteorde

7、r 排序存储 字典序对int排序的结果是1 10 100 11 12 13 14 15 16 17 18 19 2 20 21 9 91 92 93 94 95 96 97 98 99 要保持整形的自然序 行键必须用0作左填充所有对表的访问都要通过键通过单个rowkey访问通过rowkey的range全表扫描 列族ColumnFamily HBase表中的每个列都归属于某个列族 列族必须作为表模式 schema 定义的一部分预先给出 如create test course 列名以列族作为前缀 每个 列族 都可以有多个列成员 column 如course math course english

8、新的列族成员可以随后按需 动态加入 权限控制 存储以及调优都是在列族层面进行的 同一列族成员最好有相同的访问模式和大小特征 HBase把同一列族里面的数据存储在同一目录下 由几个文件保存 单元格修饰符Cellqualifier 通过列族 单元格修饰符 可以具体到某个列 可以把单元格修饰符认为是实际的列名 在列族存在 客户端随时可以把列添加到列族 时间戳Timestamp 在HBase每个cell存储单元对同一份数据有多个版本 根据唯一的时间戳来区分每个版本之间的差异 不同版本的数据按照时间倒序排序 最新的数据版本排在最前面 时间戳的类型是64位整型 时间戳可以由HBase 在数据写入时自动 赋

9、值 此时时间戳是精确到毫秒的当前系统时间 时间戳也可以由客户显式赋值 如果应用程序要避免数据版本冲突 就必须自己生成具有唯一性的时间戳 区域Region HBase自动把表水平划分成多个区域 region 每个region会保存一个表里面某段连续的数据 每个表一开始只有一个region 随着数据不断插入表 region不断增大 当增大到一个阀值的时候 region就会等分会两个新的region 当table中的行不断增多 就会有越来越多的region 这样一张完整的表被保存在多个Region上 Cell单元格 由行和列的坐标交叉决定 单元格是有版本的 单元格的内容是未解析的字节数组 由 row

10、key column version 唯一确定的单元 cell中的数据是没有类型的 全部是字节码形式存贮 锁 HBase的写操作是锁行的 每一行都是一个原子元素 无论对行进行访问的事务设计多少列 对行的更新都是原子的 都可以加锁 这使得加锁模型简单化 HBase中数据表的物理存储方式 物理存储 1 Table中的所有行都按照rowkey的字典序排列 2 Table在行的方向上分割为多个HRegion 物理存储 3 Region按大小分割的 每个表一开始只有一个region 随着数据不断插入表 region不断增大 当增大到一个阀值的时候 HRegion就会等分会两个新的HRegion 当abl

11、e中的行不断增多 就会有越来越多的HRegion 物理存储 4 HRegion是HBase中分布式存储和负载均衡的最小单元 最小单元就表示不同的HRegion可以分布在不同的HRegionserver上 但一个HRegion是不会拆分到多个server上的 物理存储 5 HRegion虽然是分布式存储的最小单元 但并不是存储的最小单元 事实上 HRegion由一个或者多个Store组成 每个store保存一个columnsfamily 每个Strore又由一个memStore和0至多个StoreFile组成 如图 StoreFile以HFile格式保存在HDFS上 物理存储 HFile的格式为

12、 物理存储 HFile分为六个部分 DataBlock段 保存表中的数据 这部分可以被压缩MetaBlock段 可选的 保存用户自定义的kv对 可以被压缩 FileInfo段 HFile的元信息 不被压缩 用户也可以在这一部分添加自己的元信息 DataBlockIndex段 DataBlock的索引 每条索引的key是被索引的block的第一条记录的key MetaBlockIndex段 可选的 MetaBlock的索引 Trailer段 这一段是定长的 保存了每一段的偏移量 读取一个HFile时 会首先读取Trailer Trailer保存了每个段的起始位置 段的MagicNumber用来做

13、安全check 然后 DataBlockIndex会被读取到内存中 这样 当检索某个key时 不需要扫描整个HFile 而只需从内存中找到key所在的block 通过一次磁盘io将整个block读取到内存中 再找到需要的keyDataBlockIndex采用LRU机制淘汰 HFile的DataBlock MetaBlock通常采用压缩方式存储 压缩之后可以大大减少网络IO和磁盘IO 随之而来的开销当然是需要花费cpu进行压缩和解压缩 目标Hfile的压缩支持两种方式 Gzip Lzo 物理存储 HLog WALlog HLog文件就是一个普通的HadoopSequenceFile Sequen

14、ceFile的Key是HLogKey对象 HLogKey中记录了写入数据的归属信息 除了table和region名字外 同时还包括sequencenumber和timestamp timestamp是 写入时间 sequencenumber的起始值为0 或者是最近一次存入文件系统中sequencenumber HLogSequeceFile的Value是HBase的KeyValue对象 即对应HFile中的KeyValue 可参见上文描述 目录 HBase简介HBase体系结构HBase数据模型HBase提供的接口HBase优化HBase用途 HBase交互接口 NativeJavaAPI 最

15、常规和高效的访问方式 适合HadoopMapReduceJob并行批处理HBase表数据HBaseShell HBase的命令行工具 最简单的接口 适合HBase管理使用ThriftGateway 利用Thrift序列化技术 支持C PHP Python等多种语言 适合其他异构系统在线访问HBase表数据RESTGateway 支持REST风格的HttpAPI访问HBase 解除了语言限制Hive 使用类似SQL语言来访问HBasePig 可以使用PigLatin流式编程语言来操作HBase中的数据 和Hive类似 本质最终也是编译成MapReduceJob来处理HBase表数据 适合做数据统

16、计 目录 HBase简介HBase体系结构HBase数据模型HBase提供的接口HBase优化HBase用途 HBase优化 配置优化1 zookeeper session timeout df 180000ms hbase regionserver handler count df 10 hbase hregion max filesize df 256M hbase regionserver global memstore upperLimit lowerLimit 0 4 0 35 hfile block cache size df 0 2 hbase hstore blockingStoreFiles df 7 hbase hregion memstore block multiplier df 2 HBase优化 配置优化2 写速度关键因素Tableregion分布均衡 单台regionserver的region数 hbase regionserver handler counthbase regionserver global memstore upperLimithbas

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

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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