- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HBase 性能优化;;;行键设计
高表与宽表的选择
分页
高级模式
辅助索引
搜索继承
事务
布隆过滤器
版本管理;行键设计
按行键排序,按列族存储
空值不存储(稀疏表)
;高表与宽表的选择
宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数少;
高表是指很多行较少列,即行多列少,一行中的数据量较少,行数大。
HBase的row key是分布式的索引,也是分片的依据。
row key + column family + column qualifier + timestamp + value 是HFile中数据排列依据。
HFile对数据的索引到data block级别,而不是行级别。
row key是HFile内部的粗粒度(data block粒度)本地索引的主键。
;在HBase中使用宽表、高表的优劣如下:
查询性能:高表更好,查询条件都在row key中, 是全局分布式索引的一部分。
分片能力:高表分片粒度更细,各个分片的大小更均衡。
元数据开销:高表元数据开销更大。
事务能力:宽表事务性更好。
数据压缩比:对一行内的数据进行压缩,宽表能获得更高的压缩比。
;分页
offset和limit结合
具体步骤:
在起始键的位置处打开一个扫描器。
跳过offset数目的行。
读取limit数目的行,并返回给上层应用。
关闭扫描
;高级模式——跨语言的IDL(interface definition language)
为用户提供一种可以定义初始模式的语言,然后用户可以通过增加或者删除字段来更新这个模式。序列化API能够使用新模式来读取旧模式,缺失的字段被忽略或者用默认值来填充。
Avro:HAvroBase是一个使用Avro在每列中存储复杂记录的典型项目。它使用Avro的接口定义语言(IDL)来定义实际的模式。这个模式被用于在表的任意列中存储Avro形式序列化的记录。
Protocal buffers:用户可以用Protocol Buffers的IDL来定义一个外部模式,这个模式被用来序列化复杂的数据结构到HBase中。
;辅助索引
尽管HBase没有为辅助索引提供原生支持,但是有些应用场景仍需要使用辅助索引。
辅助索引存储了一个新坐标和现有的坐标之间的映射关系。;辅助索引——方案1
把任务完全转移到应用层的典型做法是一个数据表和一个(或者多个)查找/映射表结合起来。每当程序写数据表时,它也同时更新映射表(也被成为辅助索引表)。读数据时可以直接在主表中进行查询,从辅助索引表中先查找原表的行键,再在原表中读取数据。
优点:整个逻辑代码都是由客户端处理,用户可以按照需求设计映射关系。
缺点:HBase不能保障跨行操作原子性;缺少事物支持可能导致数据被存储在数据表中,但是在辅助索引表中没有相应映射。;辅助索引——方案2
大多数客户端和服务端的类都被添加了索引支持功能的类替换掉了。客户端管理索引在单独表中存储主键和辅助键之间的映射关系,与之不同的是,这些操作在ITHBase中被处理,同时主表与辅助索引表之间的关系由相应的描述符(descriper)定义。结合事物支持的索引更新,这个方案提供了HBase辅助索引的完全实现。
缺点:不支持最新HBase版本;增加了同步开销,导致性能下滑;;搜索继承
使用任意关键字来搜索数据,需要集成一个完整的搜索引擎。
常见的做法是基于 Apache Lucene 的解决方案,例如 Lucene或者Solr或者ES等。
FackBook的解决方案是,收件箱搜索系统(Facebook inbox search)
每一行是一个单独的收件箱,即每个用户在搜索表中都有一个单独的行
列是消息中被索引的词语
版本是消息ID
值包括附加信息,例如,词组在文件中的位置
;事务
事务型HBase
带索引的事务型HBase(Indexed Transactional HBase)项目有一些取代默认客户端类和服务端类的拓展类,它们增加了跨行甚至跨表的事务支持。在region服务中,更准确的说,每个region都保持了一个事务列表。该列表是由beginTransaction()调用初始化,并且由相应的commit()调用结束。每次读写操作都有一个事务ID,以保护调用不受其他调用的影响。
;事务
Zookeeper
HBase运行时需要一个Zookeeper集群,它在集群的启动中扮演着种子或引导启动的角色
Zookeeper提供了一个能够被用于实现两阶段提交协议的锁的方案。它使用一个特定的znode来代表事务,并且每个参与客户端对应一个孩子znode。客户端可以使用自己的znode标志自己在事务中的那部分是成功还是失败的。其他客户端可以监控同级的znode,并采适当的行动。
;布隆过滤器
布隆过滤器通过一个很长的二进
您可能关注的文档
- 二零二三年 优质公开课hadoop架构.pptx
- 二零二三年 优质公开课Hadoop滚动升级.pptx
- Hadoop用户到组的映射用户配置.pptx
- Hadoop的下载安装和格式化.pptx
- Hadoop的诞生全市获奖.pptx
- 二零二三年 优质公开课Hadoop的诞生.pptx
- Hadoop简介说课一等奖.pptx
- 二零二三年 优质公开课Hadoop简介.pptx
- Hadoop自定义序列化类.pptx
- Hadoop角色和隔离策略.pptx
- GB/T 29324-2024架空导线用碳纤维增强复合材料芯.pdf
- 《GB/T 29324-2024架空导线用碳纤维增强复合材料芯》.pdf
- GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 《GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集》.pdf
- 中国国家标准 GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 中国国家标准 GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- 《GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范》.pdf
- GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
- 中国国家标准 GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
1亿VIP精品文档
相关文档
最近下载
- 2023年第四届“红旗杯”班组长大赛考试题库附答案(含各题型).docx VIP
- 南宁网约车区域科目考试题库.pdf
- 2023年“红旗杯” 第四届全国机械行业班组长管理技能大赛考试题库.docx VIP
- 清华同方水源热泵中央空调.doc VIP
- 2024年高考语文一轮复习讲练测(新教材新高考)第03讲小说形象类题目(讲义)(原卷版+解析).docx VIP
- 守纪律讲规矩党课课件.pptx VIP
- SGHP清华同方水源热泵操作说明技术手册.pdf VIP
- 第三次全国土壤普查理论考试题 (含答案).docx VIP
- 安徽省近5年中考语文作文真题及模拟题汇编(含参考例文).docx VIP
- 通桥(2017)2101-Ⅰ时速160公里客货共线铁路预制后张法简支T梁(钢横梁人行道方案)32m.pdf
文档评论(0)