我有一个主机和两个区域服务器的Hbase(Hadoop 1.2.1 v 0.94.19)设置。 每个区域服务器有16 GB堆(6.4 GBcaching,4.0 GB存储区)和1.6 TB(2 X 800 GB)SSD磁盘空间。 只有一个单列家族的表被预先分成128个区域(00-ff)。 密钥是一个32字节的hexstring,平均值为800-900字节。 更新率约为3k – 5k项,其中约20%是新的项目。 Hadoop复制因子设置为2.其余的Hadoop和Hbaseconfiguration是默认设置。
我在这个设置上运行了一个读取基准testing(这不是一个基准testing,但是我自己的代码),通过Java Hbase接口读取随机(但是有效)的条目。 每次阅读平均30-40毫秒,这在我看来是不寻常的。 另外,随着每个地区的商店文件数量的增加,这个读取时间也会增加,并且在我进行重大压缩之后再次下降。 即使在重大压缩之后,两个区域服务器始终将Hbase块位置索引报告为0。
我的问题是 – 有没有人看到我在这里做的任何明显的错误? 是否增加每个区域服务器中的磁盘数量(例如,如果我切换到4 X 400 GB)有助于减less读取延迟? 有没有SSD优化(如过度configuration)可能有帮助? 最后,可能会导致块位置索引总是为0?
请问我是否需要更多信息。 谢谢。