硬件层面
内存要大,最好是ECC(Error Checking and Correcting),实现内存的动态纠错;CPU要多路(每个路彼此隔离)每个路一个CPU,每个cpu上面一般都是2~12核。
    
在操作系统层面
    1)JVM用64位的;
    2)挂载的硬盘设置为noatime,atime意味着每次读写数据无论是内存硬盘映射还是硬盘都会造成一次写硬盘(日志),因为hdfs已经是fs,所以这次写没有任何意义;
    3)关闭交换空间;为什么要关闭呢?因为有swap空间的目的是延迟进行OOM,如果内存紧张并不是第一时间通将最消耗内存的进程杀死,而是将部分内存放置到磁盘中;如果后续取用这部分数据需要通过磁盘IO在获取数据然后加载到内存中;这就发生了延迟,而且因为内存的紧张,导致载入内存这个操作本身就会造成很大的延迟;所以很多数据库都希望尽量少用Swap;
 4)关闭透明大页;因为透明大页是在运行期动态决定huge page size(大页用于存放文件索引),这将会导致服务延迟相应;对于数据库这类对于相应时间比较敏感的应用而言,需要进行关闭。
 
HBase的查询优化
    1. 设置Scaner的缓存:setCaching(一次可以返回行数,默认每次(while result.next()...) 都会通过RPC去服务器端请求一次;设置了setCache之后,将会一次性从服务器端取回多条;当且仅当当缓存行数去完成了,再去服务端取出下一波数据);
    2. 显式的指定返回的列信息(scan.addColumn("XX"));
    3. 记得关闭resultScanner(scaner返回的数据集对象),否则数据将会一直缓存在服务器端;
    4. 如果数据量比较大(比如全表扫描),最好关闭块缓存;setCacheBlock(false)
 
关于noatime,atime
文件有三个time,atime(access time,记录访问即read时间),mtime(modify time,文件修改时间)以及ctime(create time,文件创建时间),如果文件mount的模式是noatime,就意味着文件的读取不会记录该时间,也就避免了一次磁盘的IO。
 
参考:
http://hbasefly.com/2017/05/24/hbase-linux/
《HBase企业应用开发实战》 马延辉

什么是HBase(六)性能调优的更多相关文章

  1. HBase配置性能调优(转)

    因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 配置优化 zo ...

  2. HBase配置性能调优

    因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 配置优化 zo ...

  3. hbase性能调优之压缩测试

    文章概述: 1.顺序写 2.顺序读 3.随机写 4.随机读 5.SCAN数据 0 性能测试工具 hbase org.apache.hadoop.hbase.PerformanceEvaluation ...

  4. hbase性能调优_表设计案例

    hbase性能调优案例 1.人员-角色   人员有多个角色  角色优先级   角色有多个人员   人员 删除添加角色   角色 可以添加删除人员   人员 角色 删除添加   设计思路 person表 ...

  5. hbase性能调优(1)

    hbase性能调优 标签: hbase 性能调优 | 发表时间:2014-05-17 15:10 | 作者:无尘道长 分享到: 出处:http://www.iteye.com 一.服务端调优 1.参数 ...

  6. hbase性能调优案例

    hbase性能调优案例 1.人员-角色   人员有多个角色  角色优先级   角色有多个人员   人员 删除添加角色   角色 可以添加删除人员   人员 角色 删除添加   设计思路 person表 ...

  7. Hbase性能调优(一)

    转自:https://blog.csdn.net/yueyedeai/article/details/14648111 1.修改Linux配置 Linux系统最大可打开文件数一般默认的参数值是1024 ...

  8. 第六章 Java性能调优工具(待续)

    Java性能调优工具 Windows工具 JDK命令行工具 JConsole工具 Visual VM多合一工具 Visual VM对QQL的支持 MAT内存分析工具 MAT对QQL的支持 JProfi ...

  9. Database基础(六):实现MySQL读写分离、MySQL性能调优

    一.实现MySQL读写分离 目标: 本案例要求配置2台MySQL服务器+1台代理服务器,实现MySQL代理的读写分离: 用户只需要访问MySQL代理服务器,而实际的SQL查询.写入操作交给后台的2台M ...

  10. Informatica_(6)性能调优

    六.实战汇总31.powercenter 字符集 了解源或者目标数据库的字符集,并在Powercenter服务器上设置相关的环境变量或者完成相关的设置,不同的数据库有不同的设置方法: 多数字符集的问题 ...

随机推荐

  1. STM32时钟树

    STM32的时钟系统 相较于51单片机,stm32的时钟系统可以说是非常复杂了,我们现在看下面的一张图: 上图说明了时钟的走向,是从左至右的从时钟源一步步的分配给外设时钟.需要注意的是,上图左侧一共有 ...

  2. HDU 4272 LianLianKan (状压DP+DFS)题解

    思路: 用状压DP+DFS遍历查找是否可行.假设一个数为x,那么他最远可以消去的点为x+9,因为x+1~x+4都能被他前面的点消去,所以我们将2进制的范围设为2^10,用0表示已经消去,1表示没有消去 ...

  3. TCGA三个在线可视化网站

    1.>c-Bioportal: www.cbioportal.org 整合和简化了包括TCGA,ICGC以及GEO等多个癌症基因组数据库的内容,提供友好可视化的界面,可供下载. 主要展示基因的s ...

  4. hdu 2665 Kth number 主席树

    Kth number Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Prob ...

  5. Template Method(模板方法)

    意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 适用性: 一次性实现一个算法的不变的部分, ...

  6. 解决"No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"错误

    今天安装了Android Studio 3.2,打开一个旧工程,编译提示"No toolchains found in the NDK toolchains folder for ABI w ...

  7. 递归--练习9--noi8758 2的幂次方表示

    递归--练习9--noi8758 2的幂次方表示 一.心得 找准子问题就好 二.题目 8758:2的幂次方表示 总时间限制:  1000ms 内存限制:  65536kB 描述 任何一个正整数都可以用 ...

  8. 桌面以及任务栏的所有浏览器,被加上了 hao.360.cn的网址

    桌面以及任务栏的所有浏览器,被加上了hao.360.cn的网址 也不知道是安装了什么软件,中了360的招. 桌面以及任务栏的所有浏览器,被加上了hao.360.cn的网址. 这种东西,肯定是该死的36 ...

  9. ABP zero出现Default language is not defined!的错误的解决方法

    打开程序包管理器控制台,把EntityFramework作为默认项目,并且执行Update-Database命令 再运行项目

  10. 个人知识管理系统Version1.0开发记录(11)

    (1)匹配单个属性的关键字:(2)匹配单个对象的关键字:(3)匹配对象集合的关键字:(4)基于事件驱动的:(5)实时搜索,参考win7的搜索功能. 1.备份,java代码,数据库数据. 2.oracl ...