关于hbase拆分和合并文件问题(江湖救急)
沉沦 2017-12-27 04:19:45
关于hbase文件的拆分和合并
问题 1.
设置memstore为5MB
hbase.hregion.preclose.fulsh.size = 5MB
设置最大拆分为6MB
hbase.hregion.max.filesize = 6MB
问:因为在每个familycolumns里,每次memstore满了之后会刷新到磁盘上.
因为memstore=5MB,最大拆分阈值是=6M.
那么我可以认为hbase永远不会对数据进行拆分,除非单个语句一次性进来一个大于6M的数据.hbase只有强行写一个大于6M的文件才可能去拆分? (我理解的对吗?)
#######################################################################
问题 2.
设置memstore为5MB
hbase.hregion.preclose.fulsh.size = 5MB
设置最大拆分为6MB
hbase.hregion.max.filesize = 6MB
问:如果memstore=5MB,最大拆分阈值是=6M,
那么每个文件都会拆分成2.5M ?
#########################################################################
问题 3.
设置memstore为5MB
hbase.hregion.preclose.fulsh.size = 5MB
设置最大拆分为5MB
hbase.hregion.max.filesize = 5MB
region 合并处理的文件数
hbase.hstore.compaction.max.size = 10
region 合并文件最小值
hbase.hstore.compaction.min.size = 2M
问:如果设置memstore为5MB,设置最大拆分为5MB,合并文件最小值为2M,合并文件数是10
那么当每个文件拆分成2.5M之后,然后又要合并.10个2.5M = 25M.
那么合并的数据又大于最大拆分数(5M以上),然后又对这25M拆分? 无限循环?
#################################################################
问题 4.
设置memstore为5MB
hbase.hregion.preclose.fulsh.size = 5MB
设置最大拆分为5MB
hbase.hregion.max.filesize = 5MB
region 合并处理的文件数
hbase.hstore.compaction.max.size = 10
region 合并文件最小值
hbase.hstore.compaction.min.size = 3M
问:如果设置memstore为5MB,设置最大拆分为5MB,合并文件最小值为3M,合并文件数是10
那么当每个文件拆分成2.5M之后,然而合并文件最小值为3M.那么数据将永远不会合并.
###########################################################
问题 5.
设置memstore为5MB
hbase.hregion.preclose.fulsh.size = 5MB
设置最大拆分为5MB
hbase.hregion.max.filesize = 5MB
region 合并处理的文件数
hbase.hstore.compaction.max.size = 10
region 合并文件最小值
hbase.hstore.compaction.min.size = 2M
问:如果设置memstore为5MB,设置最大拆分为5MB,合并文件最小值为2M,合并文件数是10
那么当每个文件拆分成2.5M之后,然而合并文件最小值为1M.那么它将会合并 10 * 2.5M = 25M
这时,这个新文件(25M)是大于最小合并字节的1M.
那么下次合并,这个25M的文件还会参与合并操作吗?
#####################################################
问题 6.
大家都是如何设置这几个值的.能否给一个参考