【发布时间】:2013-08-19 10:09:10
【问题描述】:
我有一个关于将 Apache HBase 与 RAMdisk 一起使用的一般性问题。 单个表中有大量数据,总共大约 25GB。 有了这些数据,我正在使用 Java 程序进行一些基本的聚合。
由于我有足够的可用 RAM,我尝试使用 tmpfs 将此数据集放入 RAMdisk:
mount -t tmpfs -o size=40G none /home/user/ramdisk
然后我停止了 HBase,将数据文件夹的内容复制到 RAMdisk 中。 最后我创建了一个符号链接,将旧数据目录链接到新数据目录,然后再次启动 HBase。
它可以工作,但是当我现在处理聚合时,它变得比以前稍微慢。
如果 HBase 压缩数据(激活了 Snappy 压缩)等等,我可以想象使用 RAMdisk 没有那么大的影响……但我无法猜测为什么更快的介质会导致更慢数据的访问。有足够的可用 RAM,因此这不会成为瓶颈。
也许有人对此有一般的想法或见解?
【问题讨论】:
-
可能你对 HBase 有误解。由于您可以将数据填充到 RAM 中,因此传统数据库是更好的选择。
-
虽然你说你有足够的 RAM,但 tmpfs 使用交换。谁知道。试试
-t ramfs并交叉手指。 -
@zsxwing 我不说传统的数据库系统,我想了解一下这个现象。或许您对此有所了解。
-
@AlfonsoNishikawa 我不改变数据的大小,我只是在阅读。 25GB 应该适合 40GB,即使有一些额外的文件,我猜也不交换。
-
“谁知道”。如果您试一试,请记住发表评论:) 其他事情可能是缓存污染。你的情况很奇怪,这是真的;)
标签: hadoop hbase aggregation ramdisk