硬件层面
内存要大,最好是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. JavaScript高级内容笔记:原型链、继承、执行上下文、作用域链、闭包

    最近在系统的学习JS深层次内容,并稍微整理了一下,作为备忘和后期复习,这里分享给大家,希望对大家有所帮助.如有错误请留言指正,tks. 了解这些问题,我先一步步来看,先从稍微浅显内容说起,然后引出这些 ...

  2. GPS数据解析

    1.摘要 GPS模块使用串口通信,那么它的的数据处理本质上还是串口通信处理,只是GPS模块的输出的有其特定的格式,需要字符串处理逻辑来解析其含义.如何高效的处理从GPS模块接收到的数据帧,是GPS驱动 ...

  3. bzoj1600 [Usaco2008 Oct]建造栅栏(递推)

    Description 勤奋的Farmer John想要建造一个四面的栅栏来关住牛们.他有一块长为n(4<=n<=2500)的木板,他想把这块本板 切成4块.这四块小木板可以是任何一个长度 ...

  4. 对OpenCV中3种乘法操作的理解掌握

    参考了<Opencv中Mat矩阵相乘——点乘.dot.mul运算详解 >“http://blog.csdn.net/dcrmg/article/details/52404580”的相关内容 ...

  5. Spring Data JPA中CrudRepository与JpaRepository的不同

    使用Spring Data JPA CrudRepository 和JpaRepository 的好处: 继承这些接口,可以使Spring找到自定义的数据库操作接口,并生成代理类,后续可以注入到Spr ...

  6. HBase优化相关

    1.HBase预分区 HBase在创建表时,默认会自动创建一个Region分区.在导入数据时,所有客户端都向这个Region写数据,直到这个Region足够大才进行切分.这样在大量数据并行写入时,容易 ...

  7. Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴)

    描述 axes在当前窗口中创建一个包含默认属性坐标系 axes('PropertyName',propertyvalue,...)创建坐标系时,同时指定它的一些属性,没有指定的使用DefaultAxe ...

  8. Bzoj 4371: [IOI2015]sorting排序 二分

    题目 似乎很久没写题解了... 这题是校里胡策的时候的题,比赛因为评测机有点慢+自己代码常数大没快读...被卡t了,但是bzoj上还是A了的...,因为bzoj时限比较宽可以不卡常. 题解: 首先可以 ...

  9. LA 4636 积木艺术

    https://vjudge.net/problem/UVALive-4636 题意: 给出正视图和侧视图,判断最少要用多少个立方体. 思路: 首先正视图里出现的积木个数都是必须的,记录下每一列积木的 ...

  10. php环境重启

    php-fpm mysql nginx 一个lnmp的服务,主要就是靠这三个来维持的. 重启nginx # /usr/local/nginx/sbin/nginx -s stop # /usr/loc ...