为什么数据没有立即刷新到文件系统?默认情况下,数据在刷新到文件系统之前在 memstore 中可用多长时间?每次写入数据都将存储在 memstore 中,就像每次读取一样,数据也将写入 memstore/
问问题
293 次
2 回答
0
刷新只不过是 RPC 存储到区域服务器,数据可以通过以下方式刷新到区域服务器
put
对表进行操作,Row/s 将被传输到 Region 服务器。- 如果我们将缓冲区大小设置为
setWriteBufferSize()
,那么当缓冲区变满时。 - 或通过显式调用
flushCommits()
。
于 2013-07-16T20:55:34.010 回答
0
Memstore 充当最后写入数据的内存缓存,并确保当作为 HFile 写入 HDFS 时,所有行键都经过主要排序。因此,在 flushing 之前,对行进行排序然后刷新。这主要是因为 HDFS 中的文件一旦写入就无法修改。
为 Memstore 刷新调整以下两个
hbase.hregion.memstore.flush.size
hbase.regionserver.global.memstore.lowerLimit
频繁的 Memstore 刷新也会降低读取操作的性能,因为 HBase 必须查看大量由频繁刷新引起的 HFile。
希望这可以帮助。
于 2013-07-17T10:09:37.860 回答