2

我在 HBase 上有一堆行,它们存储不同大小的数据(0.5 MB 到 120 MB)。当扫描器缓存设置为 100 时,响应有时会变得太大,并且区域服务器会死掉。我试过但找不到解决方案。有人可以帮我找到

  1. HBase 支持的最大响应大小是多少?
  2. 有没有办法限制服务器的响应大小,以便将结果限制为特定值(第一个问题的答案),以便在达到限制后立即返回结果?
  3. 如果单个记录超过此限制会怎样?应该有办法增加它,但我不知道如何。
4

1 回答 1

4

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. 如果单条记录超过这个限制会怎样?应该有办法增加它,但我不知道如何。

即使超过限制,也会返回完整的记录(行) 。

于 2013-10-10T20:28:35.233 回答