HBase 操作和性能配置选项

简介: 设置 hbase.regionserver.handler.count(在 hbase-site.xml)为用于并发的核心 x 轴。可选地,将调用队列分成单独的读取和写入队列以用于区分服务。该参数 hbase.ipc.server.callqueue.handler.factor 指定调用队列的数量:0 意味着单个共享队列。1 意味着每个处理程序的一个队列。一个0和1之间的值,按处理程序的数量成比例地分配队列数。例如,0.5 的值在每个处理程序之间共享一个队列。使用 hbase.ipc.server.callqueue.read.ratio(hbase.ipc.server.call

设置 hbase.regionserver.handler.count(在 hbase-site.xml)为用于并发的核心 x 轴。
可选地,将调用队列分成单独的读取和写入队列以用于区分服务。该参数 hbase.ipc.server.callqueue.handler.factor 指定调用队列的数量:
0 意味着单个共享队列。
1 意味着每个处理程序的一个队列。
一个0和1之间的值,按处理程序的数量成比例地分配队列数。例如,0.5 的值在每个处理程序之间共享一个队列。
使用 hbase.ipc.server.callqueue.read.ratio(hbase.ipc.server.callqueue.read.share在0.98中)将调用队列分成读写队列:
0.5 意味着将有相同数量的读写队列。
<0.5 表示为读多于写。

0.5 表示写多于读。
设置 hbase.ipc.server.callqueue.scan.ratio(HBase 1.0+)将读取调用队列分为短读取和长读取队列:
0.5 意味着将有相同数量的短读取和长读取队列。
<0.5表示更多的短读取队列。
0.5表示更多的长读取队列。
禁用RPC的Nagle

禁用 Nagle 的算法。延迟的 ACKs 可以增加到200毫秒的 RPC 往返时间。设置以下参数:

在 Hadoop 的 core-site.xml 中:
ipc.server.tcpnodelay = true
ipc.client.tcpnodelay = true
在 HBase 的 hbase-site.xml 中:
hbase.ipc.client.tcpnodelay = true
hbase.ipc.server.tcpnodelay = true
限制服务器故障影响

尽可能快地检测区域服务器故障。设置以下参数:

在 hbase-site.xml 中设置 zookeeper.session.timeout 为30秒或更短的时间内进行手游出售平台故障检测(20-30秒是一个好的开始)。
检测并避免不健康或失败的 HDFS 数据节点:in hdfs-site.xml 和 hbase-site.xml 设置以下参数:
dfs.namenode.avoid.read.stale.datanode = true
dfs.namenode.avoid.write.stale.datanode = true
针对低延迟优化服务器端

跳过本地块的网络。在 hbase-site.xml 中,设置以下参数:
dfs.client.read.shortcircuit = true
dfs.client.read.shortcircuit.buffer.size = 131072 (重要的是避免 OOME)
确保数据局部性。在 hbase-site.xml 中,设置 hbase.hstore.min.locality.to.skip.major.compact = 0.7(意味着 0.7 <= n <= 1)
确保 DataNode 有足够的处理程序进行块传输。在 hdfs-site.xml 中,设置以下参数:
dfs.datanode.max.xcievers >= 8192
dfs.datanode.handler.count = 主轴数量
JVM调优

调整JVM GC以获取低收集延迟

使用 CMS 收集器: -XX:+UseConcMarkSweepGC
保持 eden 空间尽可能小,以减少平均收集时间。例:-XX:CMSInitiatingOccupancyFraction = 70
优化低收集延迟而不是吞吐量: -Xmn512m
并行收集 eden: -XX:+UseParNewGC
避免在压力下收集: -XX:+UseCMSInitiatingOccupancyOnly
限制每个请求扫描器的结果大小,所以一切都适合幸存者空间,但没有任职期限。在 hbase-site.xml 中,设置 hbase.client.scanner.max.result.size 为 eden 空间的1/8(使用 - Xmn512m,这里是〜51MB)
设置 max.result.sizex handler.count 小于 survivor 空间
OS级调整

关闭透明的大页面(THP):

设置 vm.swappiness = 0
设置 vm.min_free_kbytes 为至少 1GB(较大内存系统为 8GB)
使用 vm.zone_reclaim_mode = 0 禁用 NUMA 区域回收。

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
分布式计算 资源调度 Hadoop
HBase表数据的读、写操作与综合操作
HBase表数据的读、写操作与综合操作
68 0
|
4月前
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
131 0
|
12月前
|
Shell 分布式数据库 Apache
Hbase常用shell操作
Hbase常用shell操作
383 1
|
12月前
|
Java Shell 分布式数据库
HBase高级操作
HBase高级操作
269 0
|
4月前
|
分布式计算 Hadoop Shell
熟悉常用的HBase操作
熟悉常用的HBase操作
76 3
熟悉常用的HBase操作
|
4月前
|
分布式计算 Hadoop Shell
|
2月前
|
DataWorks 数据管理 大数据
DataWorks操作报错合集之在连接HBase时出现超时问题,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
3月前
|
Java 大数据 API
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
104 0
【大数据】HDFS、HBase操作教程(含指令和JAVA API)
|
3月前
|
存储 缓存 分布式计算
必知的技术知识:Hbase配置(伪分布式模式)
必知的技术知识:Hbase配置(伪分布式模式)
103 0
|
4月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之使用 Event Time Temporal Join 关联多个 HBase 后,Kafka 数据的某个字段变为 null 是什么原因导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
75 0