开发者社区> 问答> 正文

HBase表热点

请教一个HBase表热点问题:假如有一个宽表,其中某一行的数据很大,有数百万列,数据量也已经超过了Region的大小,如果该行数据成为读写的热点,对于这种情况应该怎么处理?

展开
收起
pandacats 2019-12-20 21:33:21 1444 0
2 条回答
写回答
取消 提交回答
  • 不建议有单行数据过大的宽表设计,原因是: 1. hbase split是以region为单位。单行数据过大会导致无法split 2. hbase 客户端-服务端传输协议不支持单行内的流式传输,当读取该热点row时,row size可能大于hbase的rpc传输包大小限制,导致数据读不出来。

    建议修改方式: 将表设计从宽表改造成高表。将列名(qualifier)拼接到rowkey上,用多行替换单行

    2020-03-31 10:40:21
    赞同 展开评论 打赏
    1. 一行数据的大小如果超过了regionSize,应该没有办法再对这行数据所在的region进行分裂,将读写负载分配到多个机器上
    2. 如果该行数据成为读写热点,可以考虑调整表结构,避免出现该超大行
    2019-12-20 21:33:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据时代的存储 ——HBase的实践与探索 立即下载
Hbase在滴滴出行的应用场景和最佳实践 立即下载
阿里云HBase主备双活 立即下载