Change Dir

先知cd——热爱生活是一切艺术的开始

统计

留言簿(18)

积分与排名

“牛”们的博客

各个公司技术

我的链接

淘宝技术

阅读排行榜

评论排行榜

Hbase配置项粗解(2)

hbase的配置接上篇

hbase.client.write.buffer:htable客户端写缓冲区大小,默认是2097152BYTE,这个缓冲区就是为了写数据的临时存放,设置大了,浪费客户端和服务端的存储,设置小了,如果写的数据多,太多的RPC又带来网络开销,官方给的一个服务端存储耗费评估计算是:hbase.client.write.buffer*hbase.regionserver.handler.count,服务端的rs的处理handler个数也很关键;

hbase.client.pause:pause时长,在hbase发生get或其他操作fail掉的时候进行pause的时间长度,默认是100;

hbase.client.retries.number:发生操作fail时的重试次数,结合上一个指标一起来控制总的重试时间,默认是35;

hbase.client.max.total.tasks:一个HTable实例可以提交给集群的最大并发任务数,默认是100;

hbase.client.max.perserver.tasks:一个HTable实例给一台regionserver提交的最大并发任务数,默认是5;

hbase.client.max.perregion.tasks:客户端连接一台region的最大连接数,换句话说,当你有这么多个连接在region时,新的操作不被发送直到有操作完成,默认是1;

hbase.client.scanner.caching:做scanner的next操作时(如果再本地client没找到)缓存的数据行数,这个值的设置也需要权衡,缓存的多则快,但吃内存,缓存的少则需要多的拉数据, 需要注意的事项是如果两次调用的时间差大于scanner的timeout,则不要设置该值,默认是100;

hbase.client.keyvalue.maxsize:一个KeyValue实例的最大大小,这是存储文件中一个entry的容量上限,合理的设置这个值可以控制regionserver的split,split不会拆keyvalue,所以把keyvalue的大小设置为regionserver大小的一个比例分数(可除)是个不错的选择,默认是10485760;

hbase.client.scanner.timeout.period:结合刚才的caching做的一个,scanner的超时时间,默认是60000毫秒;

hbase.client.localityCheck.threadPoolSize:做localityCheck的线程池大小,默认是2;

hbase.bulkload.retries.number:做bulk load的最大重试次数,默认是0,即代表不断重试;

hbase.balancer.period:Master运行balancer的周期,默认是300000毫秒;

hbase.regions.slop:如果有regionserver的region数目超过average+(average*slop),则rebalance,默认是0.2;

hbase.server.thread.wakefrequency:服务线程的sleep时间,默认10000毫秒,比如log roller;

hbase.server.versionfile.writeattempts:退出前写 version file的重试次数,默认3,每次尝试的间隔由上一个参数控制;

hbase.hregion.memstore.flush.size:Memstore写磁盘的flush阈值,超过这个大小就flush,默认是134217728;

hbase.hregion.preclose.flush.size:如果一个region的memstore的大小等于或超过这个参数的量,在关闭region时(放置关闭flag),要提前flush,然后region关闭下线,默认大小是5242880;

hbase.hregion.memstore.block.multiplier:如果memstore的大小满足hbase.hregion.block.memstore * hbase.hregion.flush.size个byte,那么阻塞update,这个配置可以避免不必要的长时间split或者compact,甚至是OOME,默认是2;

hbase.hregion.memstore.mslab.enabled:开启MemStore-Local Allocation Buffer,这个配置可以避免在高写入的情况下的堆内存碎片,可以降低在大堆情况下的stop-the-world GC频率,默认是true;

hbase.hregion.max.filesize:HStoreFile的最大尺寸,换句话说,当一个region里的列族的任意一个HStoreFile超过这个大小,那么region进行split,默认是10737418240;

hbase.hregion.majorcompaction:一个region的所有HStoreFile进行major compact的时间周期,默认是604800000 毫秒(7天);

hbase.hregion.majorcompaction.jitter:major compaction的发生抖动范围,这么理解比较容易,就是说上一个参数不是一个严格周期,会有个抖动,这个参数就是这个抖动的比例,默认是0.5;

hbase.hstore.compactionThreshold:一个HStore存储HStoreFile的个数阈值,超过这个阈值则所有的HStoreFile会被写到一个新的HStore,需要平衡取舍,默认是3;

hbase.hstore.blockingStoreFiles:一个HStore存储HStoreFile阻塞update的阈值,超过这个阈值,HStore就进行compaction,直到做完才允许update,默认是10;

hbase.hstore.blockingWaitTime:一个更强力的配置,配合上一个参数,当HStore阻塞update时,超过这个时间限制,阻塞取消,就算compaction没有完成,update也不会再被阻塞,默认是90000毫秒;

hbase.hstore.compaction.max:每个minor compaction的HStoreFile个数上限,默认是10;

hbase.hstore.compaction.kv.max:在flushing或者compacting时允许的最大keyvalue个数,如果有大的KeyValue或者OOME的话则配置一个小的值,如果行数多且小则配置大值,默认是10;

hbase.storescanner.parallel.seek.threads:如果并行查找开启的线程池大小,默认是10;

hfile.block.cache.size:一个配置比例,允许最大堆的对应比例的内存作为HFile和HStoreFile的block cache,默认是0.4,即40%,设置为0则disable这个比例,不推荐这么做;

hfile.block.index.cacheonwrite:在index写入的时候允许put无根(non-root)的多级索引块到block cache里,默认是false;

hfile.index.block.max.size:在多级索引的树形结构里,如果任何一层的block index达到这个配置大小,则block写出,同时替换上新的block,默认是131072;

hfile.format.version:新文件的HFile 格式版本,设置为1来测试向后兼容,默认是2;

hfile.block.bloom.cacheonwrite:对于组合布隆过滤器的内联block开启cache-on-write,默认是false;

io.storefile.bloom.block.size:一个联合布隆过滤器的单一块(chunk)的大小,这个值是一个逼近值,默认是131072;

hbase.rs.cacheblocksonwrite:当一个HFile block完成时是否写入block cache,默认是false;

posted on 2014-01-03 18:34 changedi 阅读(5172) 评论(3)  编辑  收藏 所属分类: 数据

评论

# re: Hbase配置项粗解(2) 2014-01-03 20:53 私人订制

MARK,学习  回复  更多评论   

# re: Hbase配置项粗解(2) 2014-01-04 12:13 鹏达锁业

支持博主 分享  回复  更多评论   

# re: Hbase配置项粗解(2) 2014-01-05 14:29 鹏达锁业

鹏达锁业  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: