HBase笔记5(诊断)
阻塞急救:
RegionServer内存设置太小:
解决方案: 设置Region Server的内存要在conf/hbase-env.sh中添加export HBASE_REGIONSERVER_OPTS=" $HBASE_REGIONSERVER_OPTS -Xms8g -Xmx8g"
HFile达到允许的最大数量:
解决方案: 调大hbase.hstore.blockingStoreFiles
memstore大小达到阈值:
解决方案:略微调大hbase.hregion.memstore.flush.size*hbase.hregion.memstore.block
RegionServer上的Memstore总大小达到阈值:
解决方案:适当调大hbase.regionserver.global.memstore.size 调小hfile.block.cache.size
memstore 和 blockcache所占的内存总和《= 系统总内存的80%
朱丽叶暂停:
集群的region server任意一个出现宕机
发生原因:
1)Zookeeper长时间未接收到Region server响应,标记该节点宕机
2)HBase 是基于JVM,大概率遇上Full GC,GC时JVM会停止响应请求,长时间暂停造成zookeeper误认region server宕机
3)region server恢复后发现自己被标记为宕机,自己只能自杀了
解决方案:
1)查看内存是否够用
修改hbase-env.sh 中的HBASE_REGIONSERVER_OPTS选项,增加或调大-Xmx 和 -Xms值
2)调整zookeeper超时时间
在hbase-site.xml增加以下配置项zookeeper.session.timeout
<property>
<name>zookeeper.session.timeout</name>
<vaule>18000</value> 设置成180秒
</property>
确定最终超时时间: 1)先查看conf/zoo.cfg中tickTime=2000
2)计算最小minSessionTimeout=2 * tickTime =4 秒
3)计算最大maxSessionTimeout=20 * tickTime =40 秒
4) 若zookeeper.session.timeout < minSessionTimeout, 那SessionTimeout 采用 minSessionTimeout
若zookeeper.session.timeout > maxSessionTimeout ,那SessionTimeout采用 maxSessionTimeout
若果Session真的要调到180秒,需要调大tickTime
3)优化GC回收策略
JVM堆内存 < 4GB,那么使用参数 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
JVM堆内存介于4GB~32GB,使用参数 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC 或-XX:+UseG1GC
JVM堆内存 > 32GB,使用-XX:+UseG1GC
4)配置MSLAB
hbase.hregion.memstore.mslab.enabled=true
hbase.hregion.memstore.chunkpool.maxsize=非0值,取值范围0-1
hbase.hregion.memstore.chunkpool.initialsize=非0值,取值范围0-1,代表预分配chunk占用chunk pool的比例
读性能调优
性能调优方面分为2部分: 调整API用法,调整系统配置
使用过滤器
增加blockcache (若果缓存命中率较高,可以提高blockcache大小)
调整HFile合并策略
HBase笔记5(诊断)的更多相关文章
- HBase笔记:对HBase原理的简单理解
早些时候学习hadoop的技术,我一直对里面两项技术倍感困惑,一个是zookeeper,一个就是Hbase了.现在有机会专职做大数据相关的项目,终于看到了HBase实战的项目,也因此有机会搞懂Hbas ...
- Hbase笔记——RowKey设计
一).什么情况下使用Hbase 1)传统数据库无法承载高速插入.大量读取. 2)Hbase适合海量,但同时也是简单的操作. 3)成熟的数据分析主题,查询模式确立不轻易改变. 二).现实场景 1.电商浏 ...
- HBase笔记--自定义filter
自定义filter需要继承的类:FilterBase 类里面的方法调用顺序 方法名 作用 1 boolean filterRowKey(Cell cell) 根据row key过滤row.如果需要 ...
- HBase笔记--filter的使用
HBASE过滤器介绍: 所有的过滤器都在服务端生效,叫做谓语下推(predicate push down),这样可以保证被过滤掉的数据不会被传送到客户端. 注意: 基于字符串的比较器,如 ...
- HBase笔记--编程实战
HBase总结:http://blog.csdn.net/lifuxiangcaohui/article/details/39997205 (very good) Spark使用Java读取hbas ...
- HBase笔记--安装及启动过程中的问题
1.使用hbase shell的时候运行命令执行失败 例如:在shell下执行 status,失败. 可能的原因:节点之间的时间差距过大 解决方法调整两个节点的时间,使二者一致,这里用了个比较笨的方法 ...
- OCP读书笔记(9) - 诊断数据库
数据库恢复顾问 Data Recovery Advisor的命令行选项 1. 启动 RMAN 进程并连接到目标$ rman target=/ 2. 假设发生了某个错误,希望找出原因,使用 list f ...
- HBase笔记6 过滤器
过滤器 过滤器是GET或者SCAN时过滤结果用的,相当于SQL的where语句 HBase中的过滤器创建后会被序列化,然后分发到各个region server中,region server会还原过滤器 ...
- HBase笔记4(调优)
Master/Region Server调优 JVM调优 默认的RegionServer内存是1G,而Memstore默认占40%,即400M,实在是太小了,可以通过HBASE_HEAPSIZE参数修 ...
随机推荐
- Java源码阅读的真实体会(一种学习思路)
Java源码阅读的真实体会(一种学习思路) 刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动. 源码阅读,我觉得最核心有三点:技术基础+强烈 ...
- mysql密码的坑
一段时间没用本机的mysql,忘了root密码,从网上找的修改方法用起来大多都有问题.mysql版本8.0.12. 网上大多数思路:修改msql启动方式为带--skip-grant-tables参数: ...
- javaEE中config.properties文件乱码解决办法
http://jingyan.baidu.com/article/ed2a5d1f3381d709f6be17f8.html ————————————————————————————————————— ...
- php curl post josn + header
<meta charset="utf8"> <?php ini_set("max_execution_time",1800000); $arr ...
- 手写一个selenium浏览器池
维护一组浏览器,实现每分钟1000次查询.DriverPool使用变幻版只初始化一次的单例模式.维护每个浏览器的当前是否使用的状态. 不需要等待请求来了,临时开浏览器,开一个浏览器会耽误6秒钟. 可以 ...
- 初学UML之-------用例图
本文转载至:http://blog.csdn.net/a649518776/article/details/7493148 一.UML简介 UML(统一建模语言,Unified Modeling L ...
- Linux网络设备驱动 _驱动模型
Linux素来以其强大的网络功能著名,同时, 网络设备也作为三大设备之一, 成为Linux驱动学习中必不可少的设备类型, 此外, 由于历史原因, Linux并没有强制对网络设备贯彻其"一切皆 ...
- css布局 - 工作中常见的两栏布局案例及分析
突然想到要整理这么一篇平时工作中相当常见但是我们又很忽视的布局的多种处理方法.临时就在我经常浏览的网站上抓的相对应的截图.(以后看到其他类型的我再补充) 既然截了图,咱们就直接看人家使用的布局方式,毕 ...
- 如何开始学习ADF和Jdeveroper 11g
作为第一篇博客,先给一些资料可以帮助初学者开始学习ADF和Jdeveloper11g 1.首先毫无疑问,你要懂java语言, 可以看看Thinking In Java, 或者原来sun的网上的一些文档 ...
- 25.redux回顾,redux中的action函数异步
回顾:Redux: 类似于 Vuex 概念:store/reducer/action action:动作 {type,.....} 一定要有type 其他属性不做限制 reducer:通过计算产生st ...