HBase实现与应用ppt课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HBase实现与应用
Topics
• 一、部署架构 • 二、读写实现 • 三、集群规划
四、使用技巧
01
部署架构
部署架构-Client
• 是执行查询、写入等对HBase表数据进行增删改查的使用方 • 可以是使用HBase Client API编写的程序 • 也可以是其他开发好的HBase客户端应用
部署架构-HMaster
• 管理RegionServer,监听其状态,保证集群负载均衡且高可用 • 管理Region,如新Region的分配、RegionServer宕机时该节点
Region的分配与迁移 • 接收客户端的DDL操作,如创建与删除表、列簇等信息 • 权限控制
部署架构-HMaster
部署架构-Zookeeper
• 存储整个集群HMaster与RegionServer的运行状态 • 实现HMaster的故障恢复与自动切换
部署架构-Zookeeper
• 为Client提供元数据表的存储信息
部署架构-Zookeeper
总结: •对于服务端,是实现集群协调与控制的重要依赖。 •对于客户端,是查询与操作数据必不可少的一部分。
1。 • 如果需要1以上的列簇,则原则上一次请求的数据不可
跨列簇存储,多不超过3个列簇。
THANKS
数据安全、容灾与备份。
部署架构-总览
02
读写实现
读写实现-写数据的问题
麻烦: •内存中的数据如何方式断电丢失 •将数据存储于内存中的代价是高昂的,空间总是有限的
读写实现-Memstore Flush
Flush Levels: •Memstore •Region •RegionServer •Others
• 预分区区间计算:属性相同的表中随机取出部分样本 数据(rowkey维度字段)。将样本转换成rowkey之后 排序,并以样本个数/预分区个数为步长,取预分区个 数个rowkey组成预分区区间。
使用技巧-其他注意事项
• 统一使用SNAPPY压缩。 • 默认版本数为3,前期存储空间紧张的情况下设置为
询顺序或者权重拼接(视具体情况决定是否散列处 理)。
• 各个字段都保持相同长度以支持左对齐的部分键 扫描。
• scan形式的数据表中,需要提前统计单个scan可 扫描出的最大数量。
使用技巧-Bloom Filter
• kv示例:BLOOMFILTER => 'ROW',根据rowkey中 的信息生成布隆过滤器数据。
读写实现-读数据的问题
麻烦:磁盘中的HFiles如何快速检索? •检索HFiles时会产生真实磁盘的IO操作 •Memstore不停刷写的过程中,将会产生大量的Hfile •如何在大量的paction
• 只执行简单的文件合并操作 • 选取较小的Hfiles • 将其中的数据顺序写入新的HFile后,替换老的HFiles
03
集群规划
集群规划-硬件混合型+软件混合型
• 硬件混合型 指的是该集群机器配置参差不齐,混搭结 构。
• 软件混合型 指的是该集群部署了一套类似CDH全家桶 套餐。
集群规划-统一高配硬件+软件混合型
• 离线任务最大的特点:超高吞吐量 • 大型离线任务带动高IO将会影响HBase的响应性能 • CPU资源导致RegionServer节点宕机 • 集群磁盘IO到4G+、集群网络IO 8G+、HDFS IO 5G+
部署架构-RegionServer
• 根据HMaster的region分配请求,存放和管理Region • 接受客户端的读写请求,检索与写入数据,产生大量读写IO
部署架构- RegionServer
部署架构-HDFS
• HDFS为HBase提供底层存储系统 • 通过HDFS的高可用、高可靠等特性,保障了HBase的
• kv+col示例:BLOOMFILTER => 'ROWCOL',根据 rowkey+列信息生成布隆过滤器,针对get+指定列名 的查询,产生的过滤器文件会比ROW大。
使用技巧-预分区
• 预分区需要通过评估整体表数据量来确认,当前hbase 集群region块大小为30G。 • 历史大增量小的数据:给定的预分区数足够支撑 该表永远(或者相当长的时间内)不split,即更 新的所有数据将进入已存在的region中,以减少 split与compaction造成的影响。 • 历史小增量大的数据:预分区个数需满足历史数 据等分存储,并支撑未来一段时间内(一个月以 上)的增量数据。
集群规划-软硬件独立的HBase集群
• 无论是硬件混合型还是软件混合型集群,其可能因为 各种原因带来的延迟影响,对于一个高性能要求的 HBase来说,都是无法忍受的
• 最好使用独立的集群部署Hbase • 跨集群的网络IO问题
04
使用技巧
使用技巧-Rowkey规范
• 如无特殊情况,长度应控制在64字节内。 • 充分分析业务需求后确认需要查询的维度字段。 • get请求,则rowkey散列处理。 • scan请求,rowkey前缀维度散列后,后续维度依照查
读写实现-Major Compaction
• 合并Store中的所有HFiles文件 • 产生大量IO操作 • hbase.hregion.majorcompaction:默认7天 • hbase.hregion.majorcompaction.jitter:默认为0.2
读写实现-Bloom Filter
Topics
• 一、部署架构 • 二、读写实现 • 三、集群规划
四、使用技巧
01
部署架构
部署架构-Client
• 是执行查询、写入等对HBase表数据进行增删改查的使用方 • 可以是使用HBase Client API编写的程序 • 也可以是其他开发好的HBase客户端应用
部署架构-HMaster
• 管理RegionServer,监听其状态,保证集群负载均衡且高可用 • 管理Region,如新Region的分配、RegionServer宕机时该节点
Region的分配与迁移 • 接收客户端的DDL操作,如创建与删除表、列簇等信息 • 权限控制
部署架构-HMaster
部署架构-Zookeeper
• 存储整个集群HMaster与RegionServer的运行状态 • 实现HMaster的故障恢复与自动切换
部署架构-Zookeeper
• 为Client提供元数据表的存储信息
部署架构-Zookeeper
总结: •对于服务端,是实现集群协调与控制的重要依赖。 •对于客户端,是查询与操作数据必不可少的一部分。
1。 • 如果需要1以上的列簇,则原则上一次请求的数据不可
跨列簇存储,多不超过3个列簇。
THANKS
数据安全、容灾与备份。
部署架构-总览
02
读写实现
读写实现-写数据的问题
麻烦: •内存中的数据如何方式断电丢失 •将数据存储于内存中的代价是高昂的,空间总是有限的
读写实现-Memstore Flush
Flush Levels: •Memstore •Region •RegionServer •Others
• 预分区区间计算:属性相同的表中随机取出部分样本 数据(rowkey维度字段)。将样本转换成rowkey之后 排序,并以样本个数/预分区个数为步长,取预分区个 数个rowkey组成预分区区间。
使用技巧-其他注意事项
• 统一使用SNAPPY压缩。 • 默认版本数为3,前期存储空间紧张的情况下设置为
询顺序或者权重拼接(视具体情况决定是否散列处 理)。
• 各个字段都保持相同长度以支持左对齐的部分键 扫描。
• scan形式的数据表中,需要提前统计单个scan可 扫描出的最大数量。
使用技巧-Bloom Filter
• kv示例:BLOOMFILTER => 'ROW',根据rowkey中 的信息生成布隆过滤器数据。
读写实现-读数据的问题
麻烦:磁盘中的HFiles如何快速检索? •检索HFiles时会产生真实磁盘的IO操作 •Memstore不停刷写的过程中,将会产生大量的Hfile •如何在大量的paction
• 只执行简单的文件合并操作 • 选取较小的Hfiles • 将其中的数据顺序写入新的HFile后,替换老的HFiles
03
集群规划
集群规划-硬件混合型+软件混合型
• 硬件混合型 指的是该集群机器配置参差不齐,混搭结 构。
• 软件混合型 指的是该集群部署了一套类似CDH全家桶 套餐。
集群规划-统一高配硬件+软件混合型
• 离线任务最大的特点:超高吞吐量 • 大型离线任务带动高IO将会影响HBase的响应性能 • CPU资源导致RegionServer节点宕机 • 集群磁盘IO到4G+、集群网络IO 8G+、HDFS IO 5G+
部署架构-RegionServer
• 根据HMaster的region分配请求,存放和管理Region • 接受客户端的读写请求,检索与写入数据,产生大量读写IO
部署架构- RegionServer
部署架构-HDFS
• HDFS为HBase提供底层存储系统 • 通过HDFS的高可用、高可靠等特性,保障了HBase的
• kv+col示例:BLOOMFILTER => 'ROWCOL',根据 rowkey+列信息生成布隆过滤器,针对get+指定列名 的查询,产生的过滤器文件会比ROW大。
使用技巧-预分区
• 预分区需要通过评估整体表数据量来确认,当前hbase 集群region块大小为30G。 • 历史大增量小的数据:给定的预分区数足够支撑 该表永远(或者相当长的时间内)不split,即更 新的所有数据将进入已存在的region中,以减少 split与compaction造成的影响。 • 历史小增量大的数据:预分区个数需满足历史数 据等分存储,并支撑未来一段时间内(一个月以 上)的增量数据。
集群规划-软硬件独立的HBase集群
• 无论是硬件混合型还是软件混合型集群,其可能因为 各种原因带来的延迟影响,对于一个高性能要求的 HBase来说,都是无法忍受的
• 最好使用独立的集群部署Hbase • 跨集群的网络IO问题
04
使用技巧
使用技巧-Rowkey规范
• 如无特殊情况,长度应控制在64字节内。 • 充分分析业务需求后确认需要查询的维度字段。 • get请求,则rowkey散列处理。 • scan请求,rowkey前缀维度散列后,后续维度依照查
读写实现-Major Compaction
• 合并Store中的所有HFiles文件 • 产生大量IO操作 • hbase.hregion.majorcompaction:默认7天 • hbase.hregion.majorcompaction.jitter:默认为0.2
读写实现-Bloom Filter