大剑无锋之Hbase的优化【面试推荐】
一、高可用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的优化【面试推荐】相关推荐
- 大剑无锋之不都说面试不问mybatis,为什么我被虐了。。。【mybatis面试题】
1.#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdb ...
- 大剑无锋之Redis面试题【推荐】
1.Redis 是一个基于内存的高性能key-value数据库. 2.Redis相比memcached有哪些优势: memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数 ...
- 大剑无锋之你了解HTTPS吗?那么它为什么安全?【面试推荐】
在面试中,我们经常遇到像HTTP方面的知识.比如: 大剑无锋之HTTP连接https://blog.csdn.net/qq_41946557/article/details/101155935 大剑无 ...
- HBase性能优化方法总结(1):配置优化
配置优化 zookeeper.session.timeout 默认值:3分钟(180000ms) 说明:RegionServer与Zookeeper间的连接超时时间.当超时时间到后,ReigonSer ...
- Apache HBase MTTR 优化实践:减少恢复时长
摘要:HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠.高性能.面向列和可伸缩的特性,提供快速随机访问海量数据能力. 本文分享自华 ...
- HBase性能优化总结
HBase性能优化方法总结(一):表的设计 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有 ...
- mysql ip比较大小_MySQL优化/面试,看这一篇就够了
原文链接:http://www.zhenganwen.top/articles/2018/12/25/1565048860202.html 作者:Anwen~ 链接:https://www.nowco ...
- android优化最强软件,七款安卓手机优化软件推荐 为手机提速
启动项管理器设置 七款安卓手机优化软件推荐 超频工具OverClock Widget 希望提高手机运行速度,只是更改开机启动项是不够的,其实我们还可以通过超频让手机的运行速度飞起来.超频降频工具Ove ...
- mysql 索引 优化 面试
mysql 索引 优化 面试题目: 问如何优化下面的Mysql SQL语句? select * from employee where employee.deptName in ( "dep ...
最新文章
- MySQL replace()函数的使用
- NTFS的交换数据流ADS应用
- RuntimeError: dimension specified as 0 but tensor has no dimensions
- Windows核心编程 第十七章 -内存映射文件(下)
- 第六章 ORacle权限设置、schema、通过profile 限制用户恶意登录、通过profile限制使用期限
- docker pull 下载一半_Docker 从入门到掉坑
- 安装openstack时遇到的错误
- 本地jupyter notebook远程连接服务器
- 山东科技大学计算机网络_山东科技大学计算机网络共20讲视频
- echarts迁徙图 vue_vue中echarts引入中国地图的案例
- 华为鸿蒙系统多而能使用吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可
!【手机吧】_百度贴吧...
- 对华为HG255D路由器进行JTAG调试的进一步研究
- 【Maven】阿里云镜像仓库
- BootStrap快速入门
- vs code语言模式自动检测设置
- android版本连击,死神vs火影无限能量连招版本-死神vs火影无限连招版v3.2 安卓版-腾牛安卓网...
- ADS1278字符驱动
- 2019提前批——拼多多笔试题
- 万洲金业:白银继续走高,预期缓慢冲高
- 微信是如何做用户体验的?
热门文章
- HDU多校4 - 6808 Go Running(最小点覆盖+网络流优化)
- UVA1602 Lattice Animals 网格动物
- 广度优先遍历算法-01寻找制高点问题
- 机器学习-Logistic回归原理及实战
- 2013计算机大纲,2013计算机应用基础考试大纲
- 计算机文化基础知识点文件,计算机文化基础知识点.doc
- 支持64位系统的XOR加密后内存加载PE绕过杀毒软件
- 外挂学习之路(12)--- 用CE搜索字符串和搜索字符数组的区别
- 网络编程释疑之:TCP协议的“流”特性
- 技术面试中,遇到不会回答的问题怎么破?来,教你几招!