高级问题:
hbase是否对每一行施加了一个最大大小,这对于所有发行版来说都是通用的(因此不是实现的工件),无论是以存储的字节数还是以单元数为单位?
如果是:
限制是多少?
限制存在的原因是什么?
限额记录在哪里?
如果没有:
是否有文档(或测试结果)证明hbase处理超过2gb的行的能力?4gb?
hbase api用户应该保持行大小以避免严重的性能下降,是否有一个实用的或“最佳实践”的最大值?如果是这样的话,如果放弃该指导,会出现什么样的性能下降?
无论哪种情况:
答案是否取决于所讨论的hbase版本?
背景:
hbase api的至少一个实现似乎施加了限制;mapr tables使用mapr专有的mapr fs作为表的底层存储层,似乎对每行施加了2gb的硬限制和默认为32mb的可配置软限制。其他流行的hbase api实现是否也施加了这样的限制?
2011年hbase委员会委员todd lipcon的这一quoraReact表明,在细胞数量方面没有限制。然而,它也指出“负载平衡和分布的单位是区域,并且一行永远不会被跨区域分割”。行存在于单个区域中的要求是否对行大小施加了硬限制,或者施加了实际限制,超过该限制后性能将严重下降?
1条答案
按热度按时间o8x7eapl1#
一行必须放在一个区域文件中,才能分配给区域服务器并进行复制。区域文件大小可通过“hbase.hregion.max.filesize”配置
此页显示默认值为10gb/最大值http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/
此页显示可以设置为100gb
要禁用自动拆分,请将hbase.hregion.max.filesize设置为非常大的值,例如100 gb。建议不要将其设置为long.max\u值的绝对最大值。http://hbase.apache.org/book.html#important_configurations