hbase.hregion.max.filesize 默认值 到底是多少

看到不少的说明都说这个参数的默认值为256M 也就是当HStoreFile 大于这个文件时,就会split 成两个文件,这个从源码中能看到如下的内容

conf.getLong("hbase.hregion.max.filesize",HConstants.DEFAULT_MAX_FILE_SIZE);

而HConstants.DEFAULT_MAX_FILE_SIZE 正是 256*1024*1024 那显然这个就是默认256M了 没有设置的时候自动取用256M

其实不然,因为我们从Hbase-default.xml去看看这个属性

<property>
<name>hbase.hregion.max.filesize</name>
<value>1073741824</value>
<description>
Maximum HStoreFile size. If any one of a column families' HStoreFiles has
grown to exceed this value, the hosting HRegion is split in two.
Default: 1G.
</description>
</property>

我们可以看到 此地默认是1G 也就是说 超过1G才会去做split 操作, 那具体是哪一个呢,因为家在配置文件的过程是

1、Hbase-default.xml

2、Hbase-site.xml

按照上面的顺序加载,所以这个地方hbase.hregion.max.filesize 并非没有设置,而去取用配置文件的默认值,你如果有值的话自然不取用HConstants.DEFAULT_MAX_FILE_SIZE的值了

结论:所以我认为hbase.hregion.max.filesize 这个参数的默认值应该是 1G也记是1024M

我自己的理解,欢迎大家拍板砖。

你可能感兴趣的:(hbase)