Apache HBase Performance Tuning

RAM, RAM, RAM. 不要让HBase饿死.

请使用64位的平台

必须将swapping设定为0

  • 老年代使用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上
zookeeper.session.timeout
默认3分钟,在JVM调优的情况下可以减少,宕机是可以尽处理宕机机器

dfs.datanode.failed.volumes.tolerated
 数据卷的损坏情况,这是一个hdfs的配置,默认为0当

dfs.datanode.data.dir下面的任何卷的读写失败都会造成datanode的宕机
所以建议将此值设定为卷数的一半

hbase.regionserver.handler.count

这是服务端相应客户端请求的线程处理数,一般根据客户端的情况,如客户端每次都将

大数据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.speculative and mapreduce.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 官文总结的更多相关文章

  1. Apache HBase 集群安装文档

    简介: Apache HBase 是一个分布式的.面向列的开源 NoSQL 数据库.具有高性能.高可靠性.可伸缩.面向列.分布式存储的特性. HBase 的数据文件最终落地在 HDFS 之上,所以在 ...

  2. 【HBase学习】Apache HBase项目简介

    原创声明:转载请注明作者和原始链接 http://www.cnblogs.com/zhangningbo/p/4068957.html       英文原版:http://hbase.apache.o ...

  3. 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 ...

  4. Performance Tuning guide 翻译 || 前言

    CSDN 对格式支持比較弱,能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. 前言Preface 包含例如以下几个小节 l Au ...

  5. Performance Tuning guide 翻译 || Performance Tuning Guide 11G中新增特性

    CSDN 对格式支持比較弱.能够到http://user.qzone.qq.com/88285879/blog/1399382878 看一致的内容. Performance Tuning Guide  ...

  6. GoldenGate实时投递数据到大数据平台(7)– Apache Hbase

    Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ...

  7. 【转】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 ...

  8. Performance Tuning

    本文译自Wikipedia的Performance tuning词条,原词条中的不少链接和扩展内容非常值得一读,翻译过程中暴露了个人工程学思想和英语水平的不足,翻译后的内容也失去很多准确性和丰富性,需 ...

  9. Spark SQL 之 Performance Tuning & Distributed SQL Engine

    Spark SQL 之 Performance Tuning & Distributed SQL Engine 转载请注明出处:http://www.cnblogs.com/BYRans/ 缓 ...

随机推荐

  1. Android Studio aidl文件路径自定义问题

    1.aidl旧文件夹中添加的内容无法编译 sourceSets中主要是把把src/main/aidl文件也作为java.srcDirs, resources.srcDirs,这样当编译程序时,AIDL ...

  2. php与Git下基于webhook的自动化部署

    前言 2018年第一篇文章,没啥技术含量,权当笔记 我们一般都会用git或者svn来管理我们的代码 每次代码更新后还要手动的去把服务器上的代码也更新一遍 项目小了还好 项目大了着实浪费时间 要是服务器 ...

  3. python set() 集合的添加删除、交集、并集、差集、交叉补集、集合的方法介绍以及使用案例

    可变不可变: 1.可变:列表.字典.例如列表类型是可变的,我修改了列表中的元素的值,但是列表本身在内存中的地址是没有变化的,所以列表的元素是可以被改变的 >>> name=[&quo ...

  4. Ansible5:常用模块

    目录 ping模块 setup模块 file模块 copy模块 service模块 cron模块 yum模块 user模块与group模块 user模块 group示例 synchronize模块 f ...

  5. python 几种不同的格式化输出

    1. % %是最常用的格式化输出形式,后面接类型,%s,%d,%c等等 name = input() print('I am %s' % name) 2.format format也是常用格式化输出 ...

  6. python中的常用模块(2)

    在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件), 经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径 ...

  7. spring框架学习(五)整合JDBCTemplate

    1.导包 2.JdbcTemplate package cn.cnki.JdbcTemplate; import java.util.List; import org.junit.Test; impo ...

  8. C#(.net)水印图片的生成

    /* * *    使用说明: * 建议先定义一个WaterImage实例 * 然后利用实例的属性,去匹配需要进行操作的参数 * 然后定义一个WaterImageManage实例 * 利用WaterI ...

  9. [hadoop]mapreduce原理简述

    1.用于map的输入,先将输入数据切分成相等的分片,为每一个分片创建一个map worker,这里的切片大小不是随意订的,一般是与HDFS块大小一致,默认是64MB,一个节点上存储输入数据切片的最大s ...

  10. python变量内存地址释放与加速并行计算多线程

    1.导入numba和gc包进行并行计算和内存释放 代码如下很容易的: #coding:utf-8 import time from numba import jit, prange, vectoriz ...