一、高可用high available->HA

在HBase中HMaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果HMaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以HBase支持对HMaster的高可用配置。

 二、RowKey设计(rowkey design)

一条数据的唯一标识就是rowkey,那么这条数据存储于哪个分区,取决于rowkey处于哪个一个预分区的区间内,设计rowkey的主要目的 ,就是让数据均匀的分布于所有的region中,在一定程度上防止数据倾斜。接下来我们就谈一谈rowkey常用的设计方案。

注意:RowKey如何设计必须结合实际业务场景

  • rowkey涉及三原则:

长度原则

散列原则

唯一原则

三、预分区

每一个region维护着startRowKey与endRowKey[1,100),如果加入的数据符合某个region维护的rowKey范围,则该数据交给这个region维护。那么依照这个原则,我们可以将数据所要投放的分区提前大致的规划好,以提高HBase性能。
    注意:手动分区(预分区)需要对业务数据量有把控

四、内存优化

HBase操作过程中需要大量的内存开销,毕竟Table是可以缓存在内存中的,一般会分配整个可用内存的70%给HBase的Java堆。但是不建议分配非常大的堆内存,因为GC(gabage collection)过程持续太久会导致RegionServer处于长期不可用状态,一般16~48G内存(128G)就可以了,如果因为框架占用内存过高导致系统内存不足,框架一样会被系统服务拖死。

【补充】Hbase调优详情

https://georgedage.blog.csdn.net/article/details/103356118

大剑无锋之Hbase的优化【面试推荐】相关推荐

  1. 大剑无锋之不都说面试不问mybatis,为什么我被虐了。。。【mybatis面试题】

    1.#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdb ...

  2. 大剑无锋之Redis面试题【推荐】

    1.Redis 是一个基于内存的高性能key-value数据库. 2.Redis相比memcached有哪些优势: memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数 ...

  3. 大剑无锋之你了解HTTPS吗?那么它为什么安全?【面试推荐】

    在面试中,我们经常遇到像HTTP方面的知识.比如: 大剑无锋之HTTP连接https://blog.csdn.net/qq_41946557/article/details/101155935 大剑无 ...

  4. HBase性能优化方法总结(1):配置优化

    配置优化 zookeeper.session.timeout 默认值:3分钟(180000ms) 说明:RegionServer与Zookeeper间的连接超时时间.当超时时间到后,ReigonSer ...

  5. Apache HBase MTTR 优化实践:减少恢复时长

    摘要:HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠.高性能.面向列和可伸缩的特性,提供快速随机访问海量数据能力. 本文分享自华 ...

  6. HBase性能优化总结

    HBase性能优化方法总结(一):表的设计 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有 ...

  7. mysql ip比较大小_MySQL优化/面试,看这一篇就够了

    原文链接:http://www.zhenganwen.top/articles/2018/12/25/1565048860202.html 作者:Anwen~ 链接:https://www.nowco ...

  8. android优化最强软件,七款安卓手机优化软件推荐 为手机提速

    启动项管理器设置 七款安卓手机优化软件推荐 超频工具OverClock Widget 希望提高手机运行速度,只是更改开机启动项是不够的,其实我们还可以通过超频让手机的运行速度飞起来.超频降频工具Ove ...

  9. mysql 索引 优化 面试

    mysql 索引 优化 面试题目: 问如何优化下面的Mysql SQL语句? select * from employee where employee.deptName in ( "dep ...

最新文章

  1. MySQL replace()函数的使用
  2. NTFS的交换数据流ADS应用
  3. RuntimeError: dimension specified as 0 but tensor has no dimensions
  4. Windows核心编程 第十七章 -内存映射文件(下)
  5. 第六章 ORacle权限设置、schema、通过profile 限制用户恶意登录、通过profile限制使用期限
  6. docker pull 下载一半_Docker 从入门到掉坑
  7. 安装openstack时遇到的错误
  8. 本地jupyter notebook远程连接服务器
  9. 山东科技大学计算机网络_山东科技大学计算机网络共20讲视频
  10. echarts迁徙图 vue_vue中echarts引入中国地图的案例
  11. 华为鸿蒙系统多而能使用吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  12. 对华为HG255D路由器进行JTAG调试的进一步研究
  13. 【Maven】阿里云镜像仓库
  14. BootStrap快速入门
  15. vs code语言模式自动检测设置
  16. android版本连击,死神vs火影无限能量连招版本-死神vs火影无限连招版v3.2 安卓版-腾牛安卓网...
  17. ADS1278字符驱动
  18. 2019提前批——拼多多笔试题
  19. 万洲金业:白银继续走高,预期缓慢冲高
  20. 微信是如何做用户体验的?

热门文章

  1. HDU多校4 - 6808 Go Running(最小点覆盖+网络流优化)
  2. UVA1602 Lattice Animals 网格动物
  3. 广度优先遍历算法-01寻找制高点问题
  4. 机器学习-Logistic回归原理及实战
  5. 2013计算机大纲,2013计算机应用基础考试大纲
  6. 计算机文化基础知识点文件,计算机文化基础知识点.doc
  7. 支持64位系统的XOR加密后内存加载PE绕过杀毒软件
  8. 外挂学习之路(12)--- 用CE搜索字符串和搜索字符数组的区别
  9. 网络编程释疑之:TCP协议的“流”特性
  10. 技术面试中,遇到不会回答的问题怎么破?来,教你几招!