Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management HBase MemStore和垃圾收集_Memory Management_Hadoop_Hbase - Fatal编程技术网

Memory management HBase MemStore和垃圾收集

Memory management HBase MemStore和垃圾收集,memory-management,hadoop,hbase,Memory Management,Hadoop,Hbase,我是HBase新手,但我已经安装了HBase,并对HBase和Hadoop有了一些了解 当我研究HBase MemStore时,我对MemStore的理解是“MemStore是HBase在内存中放置必须写入或读取的数据的地方”。 所以,这就是为什么我们想在何时何地阅读关于memstore的文章,我们也会看到关于垃圾收集的讨论 现在我的问题是memstore的唯一目的是在内存中保存可读写数据吗?我们可以调整内存的大小以从hbase获得快速回复吗?垃圾收集配置(收集器配置)会影响memstore吗?

我是HBase新手,但我已经安装了HBase,并对HBase和Hadoop有了一些了解

当我研究HBase MemStore时,我对MemStore的理解是“MemStore是HBase在内存中放置必须写入或读取的数据的地方”。 所以,这就是为什么我们想在何时何地阅读关于memstore的文章,我们也会看到关于垃圾收集的讨论


现在我的问题是memstore的唯一目的是在内存中保存可读写数据吗?我们可以调整内存的大小以从hbase获得快速回复吗?垃圾收集配置(收集器配置)会影响memstore吗?我认为应该是这样的

关于Hbase Memstore,你是对的。一般来说,当某些内容写入HBase时,首先将其写入内存存储(memstore),一旦该memstore达到某个大小*,它将被刷新到磁盘存储文件中(为了持久性,所有内容也会立即写入日志文件)

*从全局角度来看,HBase默认情况下使用40%的堆(请参阅属性HBase.regionserver.Global.memstore.upperLimit)用于所有表的所有列族的所有区域的所有memstore。如果达到此限制,它将开始刷新某些memstores,直到memstores使用的内存低于堆的至少35%(lowerLimit属性)。这是可调整的,但您需要有完美的计算才能进行此更改

是的,GC确实会影响memstore,您实际上可以通过使用memstore本地分配缓冲区来修改此行为。我建议您阅读关于“使用MemStore本地分配缓冲区避免HBase中的完整GCs”的文章,共3部分,如下所示:
问题在于,java作为一种技术,在处理创建和删除大量对象的服务器时存在一个问题,同时应该及时响应所有请求。根本原因是垃圾收集器,它有时应该执行所谓的“停止世界”并清理内存。在大堆中,它可能导致几秒钟的延迟
现在让我们看看为什么HBase会发生这种情况,为什么它必须及时响应
Memstore是区域数据的缓存。如果数据高度可变,则会创建/删除许多对象。因此,GC(垃圾收集器)压力很大。
HBase,因为任何使用大数据集的实时系统都倾向于尽可能多地缓存,因此它的MemStores很大。
HBase区域服务器必须及时与ZooKeeper通信,以便让is知道它们处于活动状态并避免迁移。长时间使用GC pacuse可以防止它。
cloudera做了什么——为MemStore实现了自己的内存管理机制,以避免GC暂停。 Larse在他的书中描述了如何调整GC以使其更好地与Region Server配合使用。