美文网首页
Hive on Hbase 的性能问题

Hive on Hbase 的性能问题

作者: NazgulSun | 来源:发表于2022-07-12 17:25 被阅读0次

    hbase 是NoSql 数据库,可以做 oltp,hive 是 基于mapReduce的 sql 查询引擎,可以做大数据分析;
    hive 提供了与hbase整合的机制,也就是 hive on hbase 机制,以外表的方式查询hbase的数据;
    那么比较确定的是,hive on hbase 应该会比 hive on hdfs 要慢;

    对于hive on hbase 的问题,可以调优的一些参数:
    一方面是 hive 是 mapreduce 的本身的参数,
    另外一方面是 连接 hbase scan 数据的参数;

    比如我们执行一个 select*from hbase 表;
    就会存在 rpc 暴涨的问题:

    public static final String HBASE_SCAN_CACHE = "hbase.scan.cache";
    public static final String HBASE_SCAN_CACHEBLOCKS = "hbase.scan.cacheblock";
    public static final String HBASE_SCAN_BATCH = "hbase.scan.batch";

    其中, cacheblock 的坑 参考(相关的坑: https://www.jianshu.com/p/41e9982c5b1e
    一次大量的 select 会把 cache 中的数据,刷新为 本次 批量数据,其实并不是热点;

    cache + batch 的作用:
    https://www.cnblogs.com/Levyxu/p/10659748.html

    select * 的时候,每次读取一行 数据就要发起一个rpc,上亿的 row,就是上亿的rpc;
    batch 决定了 column 的数量, 一个column 一个 cell; cache + batch 共同决定了 需要多少个 rpc;

    那么我们在 hive 查询hbase 出现些性能问题的时候,可以看看rpc 的问题,然后 设置cache + batch
    另外为了不影响 热点缓存,还可以设置 cacheblock = false;

    相关文章

      网友评论

          本文标题:Hive on Hbase 的性能问题

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