我有一个带有四列族(共10列)的hbase表,主键是一个固定的10bytes id,平均行大小是240bytes。
当我在hbase中用100万行测试random get操作时,它得到1000+行/s,平均0.25mb/s。
但是当我用1000万行测试同一个操作时,它得到160行/秒,0.04mb/秒。在阅读了一些资料之后,我将hbase\u heapsize从1g增加到5g,之后我得到了320rows/s,0.08mb/s(cache-hit-raito是87%),但是它的速度仍然远远低于100万testsuite中的速度。
它有什么方法来提高性能吗?谢谢。
1条答案
按热度按时间afdcj2ne1#
对于随机获取:
减小块大小,不超过64kb,32k应该就好了
在表的行级别添加bloom过滤器
通过将low region file max设置为1go或更低,将表拆分为多个区域,并预拆分表(按国家、商家或任何您想要的方式)
激活内存中的
使用快速压缩编解码器(lzo或snappy都很好)
在你的客户端使用一个桌面池
使用memcache(…)
享受;)