Apache HBase Performance Tuning 官文总结
Apache HBase Performance Tuning
RAM, RAM, RAM. 不要让HBase饿死.
请使用64位的平台
必须将swapping设定为0
- 使用本地硬件来完成hdfs的checksumming计算,见:https://blogs.apache.org/hbase/entry/saving_cpu_using_native_hadoop
- 老年代使用CMS垃圾算法,设置-XX:CMSInitiatingOccupancyFraction为60或者70(越小代表发生越多GC,CPU也会消耗越多)
- 年轻代使用UseParNewGC算法
- 使用MSLAB机制来放置memstore带来的内存碎片,将base.hregion.memstore.mslab.enabled设置为true即可,92之后的版本都是默认true的。
- HBASE-8163单子介绍了MSLAB池的机制,可以更加有效的使用MSLAB
- 除了8613单中提到的机制外也可以使用:XX:PretenureSizeThreshold设置的大小比hbase.hregion.memstore.mslab.chunksize大这样MSLAB的块将直接在老年去产生,避免不必要的年轻代拷贝升级
- 其他关于一般的Java的GC可以参考Eliminating Large JVM GC Pauses Caused by Background IO Traffic
- 重要配置
| hbase.master.wait.on.regionservers.mintostart | 大集群环境下增大此配置以防止region被分发到少数几台RS上 |
|
默认3分钟,在JVM调优的情况下可以减少,宕机是可以尽处理宕机机器 |
|
数据卷的损坏情况,这是一个hdfs的配置,默认为0当
dfs.datanode.data.dir下面的任何卷的读写失败都会造成datanode的宕机 |
|
这是服务端相应客户端请求的线程处理数,一般根据客户端的情况,如客户端每次都将 大数据put或者scan服务器,那么需要设置的小一点,如果每次交互数据量较小则可以 提高此参数,增加处理性能。 |
| hbase.ipc.server.max.callqueue.size |
q请求队列,在纯写的情况可以增大,当有写负载的时候需要主要过大的配置有可能 带来OOM群体。 |
- 启用ColumnFamily的压缩
- 将WAL的文件大小设置为小于hdfs的块大小,并且最大wal文件数可以根据 (RS heap * memstore factor )/ wal size
- 在对业务很了解的情况下可以关闭自动分裂,改为手动分裂,可以将hbase.hregion.max.filesize设置为一个超大值,比如100G但是不建议设置为无限大。
- 对于与分裂region可以建议每台RS有10个与分裂region
- 手动控制major cpmpaction来减轻业务压力
- 在HBase纸上做MR任务的时候请关闭推测执行特性,将
mapreduce.map.speculativeandmapreduce.reduce.speculative设置为false - 配置中将ipc.server.tcpnodelay ==> true
hbase.ipc.client.tcpnodelay ==> true 减少RPC延迟 - MTTR设定:
Set the following in the RegionServer.
<property>
<name>hbase.lease.recovery.dfs.timeout</name>
<value>23000</value>
<description>How much time we allow elapse between calls to recover lease.
Should be larger than the dfs timeout.</description>
</property>
<property>
<name>dfs.client.socket-timeout</name>
<value>10000</value>
<description>Down the DFS timeout from 60 to 10 seconds.</description>
</property>And on the NameNode/DataNode side, set the following to enable 'staleness' introduced in HDFS-3703, HDFS-3912.
<property>
<name>dfs.client.socket-timeout</name>
<value>10000</value>
<description>Down the DFS timeout from 60 to 10 seconds.</description>
</property>
<property>
<name>dfs.datanode.socket.write.timeout</name>
<value>10000</value>
<description>Down the DFS timeout from 8 * 60 to 10 seconds.</description>
</property>
<property>
<name>ipc.client.connect.timeout</name>
<value>3000</value>
<description>Down from 60 seconds to 3.</description>
</property>
<property>
<name>ipc.client.connect.max.retries.on.timeouts</name>
<value>2</value>
<description>Down from 45 seconds to 3 (2 == 3 retries).</description>
</property>
<property>
<name>dfs.namenode.avoid.read.stale.datanode</name>
<value>true</value>
<description>Enable stale state in hdfs</description>
</property>
<property>
<name>dfs.namenode.stale.datanode.interval</name>
<value>20000</value>
<description>Down from default 30 seconds</description>
</property>
<property>
<name>dfs.namenode.avoid.write.stale.datanode</name>
<value>true</value>
<description>Enable stale state in hdfs</description>
</property>
Apache HBase Performance Tuning 官文总结的更多相关文章
- Apache HBase 集群安装文档
简介: Apache HBase 是一个分布式的.面向列的开源 NoSQL 数据库.具有高性能.高可靠性.可伸缩.面向列.分布式存储的特性. HBase 的数据文件最终落地在 HDFS 之上,所以在 ...
- 【HBase学习】Apache HBase项目简介
原创声明:转载请注明作者和原始链接 http://www.cnblogs.com/zhangningbo/p/4068957.html 英文原版:http://hbase.apache.o ...
- How-to: Enable User Authentication and Authorization in Apache HBase
With the default Apache HBase configuration, everyone is allowed to read from and write to all table ...
- Performance Tuning guide 翻译 || 前言
CSDN 对格式支持比較弱,能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. 前言Preface 包含例如以下几个小节 l Au ...
- Performance Tuning guide 翻译 || Performance Tuning Guide 11G中新增特性
CSDN 对格式支持比較弱.能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. Performance Tuning Guide ...
- GoldenGate实时投递数据到大数据平台(7)– Apache Hbase
Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ...
- 【转】How-to: Enable User Authentication and Authorization in Apache HBase
With the default Apache HBase configuration, everyone is allowed to read from and write to all table ...
- Performance Tuning
本文译自Wikipedia的Performance tuning词条,原词条中的不少链接和扩展内容非常值得一读,翻译过程中暴露了个人工程学思想和英语水平的不足,翻译后的内容也失去很多准确性和丰富性,需 ...
- Spark SQL 之 Performance Tuning & Distributed SQL Engine
Spark SQL 之 Performance Tuning & Distributed SQL Engine 转载请注明出处:http://www.cnblogs.com/BYRans/ 缓 ...
随机推荐
- 【刷题】BZOJ 5008 方师傅的房子
Description 方师傅来到了一个二维平面.他站在原点上,觉得这里风景不错,就建了一个房子.这个房子是n个点的凸多边形 ,原点一定严格在凸多边形内部.有m个人也到了这个二维平面.现在你得到了m个 ...
- 【bzoj4031】[HEOI2015]小Z的房间 解题报告
[bzoj4031][HEOI2015]小Z的房间 Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含\(n*m\)个格子的格状矩形,每个格子是一个房 ...
- BAT脚本如何自动执行 adb shell 以后的命令
@echo off echo su > temp.txt echo 其它命令 >> temp.txt adb shell < temp.txt del temp.txt 求问 ...
- 洛谷大宁的邀请赛~元旦祭F: U17264 photo(线段树)
标程的写法稍微有点麻烦,其实不需要平衡树也是可以做的. 线段树上维护从左端点开始最远的有拍照的长度,以及区间的最大值. 考虑两段区间合并的时候,显然左区间必须取,右区间的第一个比左区间最大值大的数开始 ...
- 十、Shell基础
一.shell概述 1.Shell是什么 shell是一个命令行解释器,他为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至编写一些程序 ...
- 【Asp.net入门04】第一个ASP.NET 应用程序-如何添加Web窗体到网站中
添加Web窗体 本部分内容: 什么是web form 怎样添加web form 1.添加Web窗体到项目中 Web 窗体是一项 ASP.NET 功能,您可以使用它为 Web 应用程序创建用户界面.We ...
- 深入了解volatile
volatile关键字经常在并发编程中使用,其特性是保证可见性以及有序性,但是关于volatile的使用仍然要小心,这需要明白volatile关键字的特性及实现的原理,这也是本篇文章的主要内容 一.J ...
- Java基础-Calendar类常用方法介绍
Java基础-Calendar类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Calendar类概念 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 Y ...
- NGINX生产环境反向代理到后端tomcat配置
#当访问www.kazihuo.com//sichuan-user-te时,跳转到http://10.1.93.61:7005/sichuan-user server { listen ; serve ...
- 可简单避免的三个 JavaScript 发布错误
Web应用程序开发是倾向于在客户端运行所有用户逻辑和交互代码,让服务器暴露REST或者RPC接口.编译器是针对JS作为一个平台,第二版ECMAScript正是考虑到这一点在设计.客户端框架例如Back ...