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