美文网首页
hbase的优化

hbase的优化

作者: becooner | 来源:发表于2020-04-12 22:08 被阅读0次

    1、rowkey设计有哪三原则?

      ①长度原则:rowkey是二进制码流。10-100个字节。

      ②散列原则:rowkey是按照字典序存储的。利用该规则,将数据均衡的分到不同的regionserver上。

      ③唯一原则  :rowkey是查询数据的索引,所以必须要保证唯一性。

    2、如何解决热点问题?

        加盐:在rowkey前加上随机数。读不可预测。

        哈希:hash会使同一个rowkey使用固定的前缀加盐,读可预测。

        反转:如反转手机号或者时间戳。可以使得数据分布较为均匀。但此时行键连续性最低,如果对行键连续性较高则不适合。

    3、hbase的compact的分类和作用?

        minor compact:在刷写文件达到一定数量之后,进行文件的合并操作。

        major compact:有个CompactionChecker线程,进行周期轮询。默认为7天,会将多个storefile进行合并,同时会将超过版本的,标记为删除的,过期的数据进行删除操作。

    4、协处理器 Coprocessor

        为表埋钩子代码,当条件符合时自动触发钩子。可以利用协处理器简历hbase的二级索引。创建一个类继承观察类,重写preput方法,在插入数据到本表前会先执行该方法。打包上传到hdfs,利用hbase shell命令加载该协处理器到表中

    5、phoenix构建二级索引

        phoenix是一个HBase的开源SQL引擎。

    优点:①支持sql查询Hbase,自动转换sql为最佳并行scan语句

              ②将where子句交给过滤器处理,将聚合查询交给协处理器处理

                ③支持直接创建二级索引来提升非主键的查询性能

                ④跳过扫描过滤器来优化in、like、or查询

                ⑤优化写操作

    缺点:①不支持事务和复杂查询

                ②有着严格的版本对应关系

    6、hbase的高表与宽表的选择?

    高表:①查询性能更好。因为一行数据更少,所以查询缓存BlockCache能缓存更多的行,以行数为单位的吞吐量更高。

            ②分片能力更好。因为hbase只能以行分片。

    宽表:①元数据开销小

               ②事务性更小

               ③数据压缩比更好

    7、hbase的布隆过滤器?

        布隆过滤器是HBase系统中的高级功能,它能够减少特定访问模式下的查询时间。默认为关闭状态。

    布隆过滤器类型

       使用过滤器,如果扫描文件块不包含该行数据,它会明确答复。如果包含该行数据,答复可能有误,通常该错误率设置为1%。意味着过滤器中关于一个文件包含一个请求行的报告中有1%是错误的。但块加载的数量大大减少了,可以提升读取效率。

    相关文章

      网友评论

          本文标题:hbase的优化

          本文链接:https://www.haomeiwen.com/subject/qobvmhtx.html