我在 HBase 上有一堆行,它们存储不同大小的数据(0.5 MB 到 120 MB)。当扫描器缓存设置为 100 时,响应有时会变得太大,并且区域服务器会死掉。我试过但找不到解决方案。有人可以帮我找到
- HBase 支持的最大响应大小是多少?
- 有没有办法限制服务器的响应大小,以便将结果限制为特定值(第一个问题的答案),以便在达到限制后立即返回结果?
- 如果单个记录超过此限制会怎样?应该有办法增加它,但我不知道如何。
我在 HBase 上有一堆行,它们存储不同大小的数据(0.5 MB 到 120 MB)。当扫描器缓存设置为 100 时,响应有时会变得太大,并且区域服务器会死掉。我试过但找不到解决方案。有人可以帮我找到
1. HBase 支持的最大响应大小是多少?
它是Long.MAX_VALUE,由常量DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE表示
public static long DEFAULT_HBASE_CLIENT_SCANNER_MAX_RESULT_SIZE = Long.MAX_VALUE;
2. 有没有办法限制服务器的响应大小,使结果被限制在一个特定的值(第一个问题的答案),这样一达到限制就会返回结果?
您可以使用属性hbase.client.scanner.max.result.size来处理这个问题。它允许我们设置最大尺寸而不是扫描仪一次性获取的行数。它实际上是调用扫描仪的 next 方法时返回的最大字节数。
3. 如果单条记录超过这个限制会怎样?应该有办法增加它,但我不知道如何。
即使超过限制,也会返回完整的记录(行) 。