hfile.block.cache.size - hbase调优】的更多相关文章

1.一个regionserver上有一个blockcache和N个memstore,它们的大小之和必须小于heapsize* 0.8,否则hbase不能启动,因为仍然要留有一些内存保证其它任务的执行. ()hbase.regionserver.global.memstore.upperLimit默认值:0.4 ()hfile.block.cache.size 默认值0.2 -- 推荐设置 这两个值默认和为RegionServer的堆内存的60%,上面值在hbase-memstore刷写已经介绍过…
版本:HBase-0.98.6-cdh5.3.6 HBase参数调优 1. zookeeper.session.timeout: 默认90000(毫秒), 控制连接zk的timeout时间.由于hbase的集群是由zk管理的,所以当一个regionserver挂掉的时候,master是从zk集群上得到的,如果该值比较大,那么可能就会有比较高的延时:如果该值比较小,那么当有一个较长时间的gc发生的时候,可能会出现假宕机. 2. dfs.datanode.failed.volumes.tolerat…
背景:HBase主集群在生产环境已稳定运行有1年半时间,最大的单表region数已达7200多个,每天新增入库量就有百亿条,对HBase的认识经历了懵懂到熟的过程.为了应对业务数据的压力,HBase入库也由最初的单机多线程升级为有容灾机制的分布式入库,为及早发现集群中的问题,还开发了一套对HBase集群服务和应用全面监控的报警系统.总结下HBase优化(针对0.94版本)方面的一些经验也算对这两年HBase工作的一个描述. 相关资源:<HBase企业应用开发实战>,HBase笔记(工作中自己总…
gc配置 hbase-env.sh export HBASE_OPTS="$HBASE_OPTS -XX:+UseConcMarkSweepGC" export HBASE_OPTS="$HBASE_OPTS -Xmx8g -Xms8g -Xmn128m -XX:+UseParNewGC" # 提升年轻代内存空间 export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateS…
@ 目录 一.phoenix调优 1.建立索引超时,查询超时 2.预分区 hbase shell预分区 phoenix预分区 3.在创建表的时候指定salting. 4.二级索引 建立行键与列值的映射关系 二.hbase调优-rowkey的设计 1.rowkey唯一原则 2.rowkey长度原则 3.rowkey散列原则 4.热点问题 5.常见的避免热点的方法: 5.1 加盐 5.2 哈希 5.3 反转 5.4 时间戳"反转" 6.其他一些建议 一.phoenix调优 1.建立索引超时…
为了达到最大网络吞吐,socket send buffer size(SO_SNDBUF)不应该小于带宽和延迟的乘积.之前我遇到2个性能问题,都和SO_SNDBUF设置得太小有关.但是,写程序的时候可能并不知道把SO_SNDBUF设多大合适,而且SO_SNDBUF也不宜设得太大,浪费内存啊.于是,有OS提供了动态调整缓冲大小的功能,这样应用程序就不用再对SO_SNDBUF调优了.(接受缓冲SO_RCVBUF也是类似的问题,不应该小于带宽和延迟的乘积).On Linux:Linux从2.4开始支持…
负载信息:RegionServer:3个 Region:5400多个 现象:在使用Spark对HBase进行scan操作时发现有些task执行比较慢 原因分析:查看Spark应用的executor日志,发现查询慢的都是027节点请求的. 获取此节点的regionServer日志,发现scan的时候有responseTooSlow的打印.     查询日志发现这段时间在regionServer上出现很多次GC pause的打印,说明当前内存不足. 综上,当前regionServer内存的配置不足以…
原因分析: 导入数据——>HBase,在客户端会发生非常多的rpc请求到regionServer,从而加大regionServer上的压力,如果regionServer比较忙碌(handle被占满),可能会抛异常. 解决: 1.调整客户端的rpc超时时间: 2.增加regionServer的hadler数.…
现象: 1.在HBase Shell里执行建表操作会等很久,最终失败: 2.通过代码侧进行建表同样不能成功. 原因排查: 1.查询HMaster日志,发现有接收到建表(create)的RPC请求:   在zookeeper的/hbase/table和/hbase/table-lock路径下也都能看到此table;   /hbase/table-lock/testXXXX路径下存在write**文件,表明获取table锁的过程没有问题: 2.从代码侧观察,发现建表操作的CreateTableHan…