为什么80%的码农都做不了架构师?>>>   

HBase 0.92版本之后,RegionServer的Compact过程根据待合并的文件大小分为smallcompaction和large compaction两种,由此可能导致在集群写入量大的时候Compact占用过多的网络出口带宽。本文将详细描述集群使用过程中遇到这一问题的排查过程及其解决方法。

1. 发现问题

HBase集群(版本为0.94.0)运行过程中,发现5台Region Server的网络出口带宽经常维持在100MB/s以上,接近到网卡的极限;同时Region Server的机器load负载也很高,高峰时候能够达到30~50。

2. 排查问题

1、集群实际运行过程中,观察到RegionServer服务端的网卡,平均每台写入流量大概60MB/s(此时写入量已经很大了);读出流量90MB/s,有时甚至突破100MB/s(注:每台机器都是千兆网卡);

2、观察实际的写入数据量在每秒5w tps左右,单条记录平均大小为1KB,大概会占用50MB/s左右的网卡入口带宽请求量,和观察到的现象一致;

3、观察查询量在每秒6w qps左右,单条记录平均大小为1KB,大概会占用60MB/s左右的网卡出口带宽请求量,奇怪的是实际观察到有接近甚至超过100MB/s的网络出口带宽请求量,多出了40MB/s左右的网络出口带宽;

4、经分析排查确定导致上述过程的原因,可能是HBase服务端由于写入量过大频繁触发compaction过程,而compaction是需要读HBase数据的,因此占据了相当部分的网络出口带宽;

5、结合对相关源码org/apache/hadoop/hbase/regionserver/CompactSplitThread.java的分析,决定对HBase集群配置做出变更(具体见下一小节),主要目的是减少compaction的发生;

6、接下来,观察到RegionServer的网络利用率明显降低,一般进出口带宽能维持在70MB/s以下。

3. 解决问题

HBase 0.92版本之后增加了关于compact的配置选项,compact分为small compaction和large compaction两个线程池执行(默认都是各有1个线程,具体源代码见:org/apache/hadoop/hbase/regionserver /CompactSplitThread.java),由于compact过程需要从HBase集群读取数据,因此实际运行中导致了compact占用大 量网络出口流量,解决方案为选择性地关闭smallcompaction或large compaction。有以下两种变更方式均可解决:

1)方案一

(1) 修改hbase.regionserver.thread.compaction.throttle为一个很大的值(如50GB),强制让所有compact都变为small compaction,减少compact的压力;

(2) 将smallcompaction和large compaction线程数均设置为1,减少compact的压力(可不配置,系统默认也会将其初始化为1)。

操作步骤:

准备hbase-site.xml文件,添加或修改如下选项:

<property>

<name>hbase.regionserver.thread.compaction.throttle</name>

<value>53687091200</value>

</property>

<property>

<name>hbase.regionserver.thread.compaction.small</name>

<value>1</value>

</property>

<property>

<name>hbase.regionserver.thread.compaction.large</name>

<value>1</value>

</property>

重启集群使配置生效。

2)方案二

将small compaction线程数均设置为0,从而关闭small compaction,只剩下large compaction,也可减少compact的压力。

操作步骤:

准备hbase-site.xml文件,添加或修改如下选项:

<property>

<name>hbase.regionserver.thread.compaction.small</name>

<value>0</value>

</property>

重启集群使配置生效。

更多精彩内容请关注:http://bbs.superwu.cn

关注超人学院微信二维码:

转载于:https://my.oschina.net/crxy/blog/420222

HBase解决Region Server Compact过程占用大量网络出口带宽的问题相关推荐

  1. Lync Server 2010所需媒体网络流量带宽详解和计算

    如果在组织内部部署Lync Server 2010,那么最大的优势就是解决了组织内部的即时通讯需求,为什么这么说?因为纵观现在微软所推行的商业智能应用平台,可以非常直观的了解到实际上整个微软商业平台就 ...

  2. 【Hbase】 Region Server 各种意外退出

    背景 Hbase: Region Server 各种意外退出 1. 网络不好导致退出 网络不好 初始化内存给的太小 kylin: build cube Hbase: Region Server 意外退 ...

  3. 解决Windows Server 2008 R2无法保存网络发现状态更改问题

    原文来自jkd395的BLOG鹤舞长空,链接于http://jkd395.blog.51cto.com/640716/364848 原文有图片,CSDN转载时不能引用,不发图了,很简单. 在Windo ...

  4. 解决Vista/Server 2008/win 7 右下角网络连接出现黄色感叹号问题

    其实很早就看到了本地连接受限的字样了,但没注意它,因为不耽误上网,而我又没有局域网,所以呢?就让它去吧... 1+1=2 可最近该做的都做了,Vista和应用的软件也稳定下来了,看它就是个事儿了,呵呵 ...

  5. hbase系统架构图以及各部分的功能作用,物理存储,HBase寻址机制,读写过程,Regin管理,Master工作机制

    1.1 hbase内部原理 1.1.1 系统架构 Client 1 包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息. Zookeepe ...

  6. 关于hbase的read操作的深入研究 region到storefile过程

    关于hbase的read操作的深入研究 region到storefile过程 这里面说的read既包括get,也包括scan,实际底层来看这两个操作也是一样的. 我们将要讨论的是,当我们从一张表读取数 ...

  7. HBase之Region Compact流程分析

    Compact(合并):是指在HBase中,HRegion上某一个列簇部分或者全部Store File合并.是由于数据不断的被写入,MemStore达到阀值则会把数据flush到Store File持 ...

  8. HBase报错server is not running yet解决方法

    问题描述 尝试安装Hadoop 3.3.1与HBase 2.3.5,安装并配置完成后,Hadoop正常运行,HBase启动Shell后运行list指令测试,出现如下错误 ERROR: org.apac ...

  9. SQL Server 2008 R2占用内存越来越大解决方法

    SQL Server 2008 R2占用内存越来越大解决方法 参考文章: (1)SQL Server 2008 R2占用内存越来越大解决方法 (2)https://www.cnblogs.com/pe ...

最新文章

  1. 山东省第三届数据应用赛事来了!
  2. L1-003. 个位数统计
  3. linux 链接文件 通配符,linux globbing文件通配符
  4. AI框架中图层IR的分析
  5. zabbix 添加 ROS 软路由监控 WinBox设置
  6. 函数, lambda表达式
  7. matlab图像分割基于小波变换,图小波变换在图像分割中的应用研究
  8. 第13章WEB13-JSP模式JDBC高级篇
  9. 服务器无线桥接技巧,服务器无线桥接设置方法
  10. Social LSTM: Human Trajectory Prediction in Crowded Spaces 论文翻译
  11. Java基础学习——操作系统批处理(操作系统命令)
  12. 85 数模 电动汽车目标客户销售策略研究(21 华数 C)
  13. 2022护眼产品展,视力康复展,山东国际眼健康展会,护眼仪展
  14. ZUK Z2开不了机,指示灯长亮
  15. 初中数学几何问题知识思维导图汇总版
  16. S29GL128P Norflash驱动读写分析
  17. JavaScript入门3JS外置对象:Window、Document对象与DOM实例详解
  18. 使用层级观察器hierarchyviewer综合各种布局实现Android QQ2012登陆界面和注册界面...
  19. linux播放器安装程序,MplayerLinux下多媒体播放器安装
  20. 另外一篇操作excel的参考

热门文章

  1. 基于.Net Core开发现代化Web应用程序系列课程和文章
  2. 计算机应用基础 辅助教学系统,计算机应用基础课程辅助教学和智能测评系统使用手册——网络版.doc...
  3. linux mysql删除root_Linux下误删MySQL的root用户解决方法
  4. linux 邮件中继转发,linux – 如何使sendmail中继本地邮件?
  5. mysql workbench kernelbase.dll_电脑出现kernelbase.dll错误的两种解决方法
  6. itest系统学生登录不了_四川省中小学生艺术测评管理系统登录平台https://www.soyohui.com/app/165187/...
  7. c语言pushback用法,C语言:【动态顺序表】动态顺序表的初始化、打印、尾插PushBack、尾删PopBack...
  8. 22条 API 设计规范,API 一致性设计
  9. SpringBoot 2 + Spring Security 5 + JWT 的单页应用 Restful 解决方案
  10. Jvm 系列(五):Java GC 分析