HBearb服务质量:在HBase中插入相同类型行的时间不一致



>我有一个集群 Hbase 设置。我有 3 个区域服务器。有一个表,其中有 27 个区域平均分布在 3 个区域服务器中 - 每个区域服务器 9 个区域。

区域服务器 1 具有---区域 1-9区域服务器 2 具有---区域 10-18区域服务器 3 具有---区域 19-27

现在,当我启动一个在区域 1 和区域

5(均在区域 Server-1 下)交替和连续插入行的程序时,我看到每行的插入时间不是恒定的或一致的---有很多方差或说插入时间的标准偏差很大。有时插入一行需要 2 毫秒,有时需要 3 毫秒,有时需要 1000 毫秒,有时甚至> 3000 毫秒。即使行中的数据大小相等。

我知道由于区域的刷新和压缩,写入被阻止---但是它不应该被阻止更长的时间跨度,并且每次刷新/压缩(轻微压缩)的阻塞时间应该一致。

总而言之,每次进行冲洗和压实

时,每次压实和冲洗所需的时间几乎相同。

对于我们的应用程序,我们需要一致的服务质量,如果不完美,至少我们需要一条清晰可见的边界线 - 就像对于每行插入,即使发生轻微的压实或刷新,也需要大约 0 到 10 毫秒而不是不超过 10 毫秒(只是一个例子)。

是否有任何我应该尝试的设置/配置?

关于如何在 Hbase 中实现它的任何想法。

任何帮助将不胜感激。

提前感谢!!

第一次压缩不会阻止您的写入!我建议您的主要事情是在区域服务器/客户端上检查GC。顺便说一句,您是否检查过您是否没有发生分裂?

其他一些可以帮助回答的输入

  1. 数据的大小是多少,有多少列和多少列族?
  2. 您的插入件的通量是多少?
  3. 为 HBase 区域服务器分配了多少内存?
  4. HDFS数据节点与区域服务器在同一台服务器上?
  5. 每台计算机有多少个磁盘?

最新更新