0

为什么数据没有立即刷新到文件系统?默认情况下,数据在刷新到文件系统之前在 memstore 中可用多长时间?每次写入数据都将存储在 memstore 中,就像每次读取一样,数据也将写入 memstore/

4

2 回答 2

0

刷新只不过是 RPC 存储到区域服务器,数据可以通过以下方式刷新到区域服务器

  1. put对表进行操作,Row/s 将被传输到 Region 服务器。
  2. 如果我们将缓冲区大小设置为setWriteBufferSize(),那么当缓冲区变满时。
  3. 或通过显式调用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 回答