aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwoAAACdCAMAAAAjbX91AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK…
Region的概念 Region是HBase数据管理的基本单位.数据的move,数据的balance,数据的split,都是按照region来进行操作的. region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region. 一个表中可以包含一个或多个Region. 每个Region只能被一个RS(RegionServer)提供服务,RS可以同时服务多个Region,来自不同RS上的Region组合成表格的整体逻辑视图. regionServer其实…
1.概述 HBase中表的基本单位是Region,日常在调用HBase API操作一个表时,交互的数据也会以Region的形式进行呈现.一个表可以有若干个Region,今天笔者就来和大家分享一下Region合并的一些问题和解决方法. 2.内容 在分析合并Region之前,我们先来了解一下Region的体系结构,如下图所示: 从图中可知,能够总结以下知识点: HRegion:一个Region可以包含多个Store: Store:每个Store包含一个Memstore和若干个StoreFile: S…
问题现象:hive执行sql报错 select count(*) from test_hive_table; 报错 Error: java.io.IOException: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions: Wed May 16 10:22:17 CST 2018, null, java.net.SocketTimeoutException:…
HBASE 优化之REGIONSERVER 一,概述 本人在使用优化regionserver的过程有些心得,借此随笔的机会,向大家介绍我的心得,有些是网上拿来的有些是自己在使用过程自己的经验,希望对大家有帮助,如有不同观点希望大家立即指正.本人使用的hbase版本是 HBase 1.2.0-cdh5.10.0.本文主要从regionserver的角度进行优化hbase,简单来书就是:使regionServer查询延迟更低,磁盘IO降低,系统更加稳定,提高吞吐能力,提升资源利用率,节约成本. 二.…
Region 各个状态的转换 HBase 维护了每个 region 的一个状态信息,并保存在 hbase:meta 中.hbase:meta 本身region的状态信息被持久化到 ZooKeeper.也可以在 HBase Master Web UI 里查看到 regions 的转换状态.以下是一个 region 可能出现的状态: 1. OFFLINE:region处于offline 状态,not opening 2. OPENING:region处于正在被opened 状态 3. OPEN:re…
分裂策略 不同的分裂策略的实现需要继承RegionSplitPolicy,主要实现两个方法: shouldSplit()表示是否需要分裂 getSplitPoint()得到分裂点rowkey 从 HBase 0.94之后,默认的分裂策略是IncreasingToUpperBoundRegionSplitPolicy ,思想就是当Region的大小超过某个阈值时,即进行分裂. 这个阈值主要由如下几个因素决定: hbase.hregion.max.filesize hbase.increasing.…
[From]https://community.hortonworks.com/content/supportkb/244808/hbase-region-in-transition-issue-on-master-ui.html Problem Description: When the HBASE Region In Transition issue occurs on Master UI, check the hbck -details. There could be multiple r…
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 本文转载自微信公众号"老叶茶馆" MGR整个集群挂掉后,如能才能自动选主,不用手动干预 当集群中所有节点都宕机后,集群再次启动后,能否自动选主? 1.所有节点都宕机后,集群重启,能否自动选主和启动 这是个来自群友的问题. 首先,MySQL服务利用 systemd 即可实现故障后自启动,注意下面这个配置即可: [root@GreatSQL ~]# cat /usr/li…
之前regionserver老挂,今天终于找到原因了. 是程序中一个函数不停的构造HTable.导致消耗内存.导致gc full. 这篇文章中得到提示:http://www.cnblogs.com/panfeng412/archive/2012/07/11/htable-and-htablepool-apply-notes.html HTable使用时的一些注意事项: 1.   规避HTable对象的创建开销 因为客户端创建HTable对象后,需要进行一系列的操作:检查.META.表确认指定名称…
最近老遇到hbase的regionserver自动挂掉的情况 日志总是看不出什么原因 不得已弄了个定时任务,任务的脚本类似是: pssh -H "bluejoe1 bluejoe2..." "/usr/local/hbase/bin/hbase-daemon.sh start regionserver" 加入定时任务,让它隔10分钟执行一次: crontab -e 10,20,30,40,50,0 * * * * pssh -H "bluejoe1 blu…
参与 Region 分配的重要对象 在 Region 分配过程中,起着重要作用有如下一些对象. HMaster— 是 HBase 中的 Master server ,仅有一个. HRegionServer--- 负责多个 HRegion 使之能向 client 端提供服务,在 HBase cluster 中存在多个HRegionServer . ServerManager--- 负责管理 Region server 信息,比如每个 Region server 的 HServerInfo( 这个对…
我们会经常谈及二级索引,这是对全表数据进行另外一种方式的组织存储,是针对table级别的.如果要为HBase上的表实现一个强一致性的二级索引,那么就无法逃避分布式事务,而这一直是用户最期待的功能. 而即使只需要保证最终一致性,这个索引也并不好实现,因为你需要额外的表以存储过程数据,需要解决宕机恢复问题等 撇开分布式事务,我们是否可以考虑对索引的要求进行降级,比如把Region看成是全表下的子表,实现一套Region级别的索引,通过功能上的牺牲以换取实现的简易及稳定. 在某些存在用户概念的场景下,…
背景:我司作为某运营商公司的技术咨询公司,发现有第三方开发公司在使用HBase 1.1.2 (HDP 2.4.2.258版本)一段时间使用正常后,从某一天开始报OOM,从而导致RegionServer宕机. 故障排查步骤 查看 regionserver的log和stdout.由于是突然宕机,log没有任何error信息,stdout 因为自动拉起以及默认启动脚本是重定向覆盖,所以被洗掉了:而oom dump当时还没开启,无任何明显提示信息. regionserver的log中尽管没有发现erro…
Region Server的整体架构 本文主要介绍Region的整体架构,后续再慢慢介绍region的各部分具体实现和源码 RegionServer逻辑架构图 RegionServer职责 1.      监听协作,通过zk来侦听master.meta位置.集群状态等信息的变化,更新本地数据. 2.      管理region的offline.online.open.close等操作,这些操作是和hmaster配合这来做的,region的状态有如下这些 offline.opening.open.…
Hbase是kv存储,但是逻辑上我们可以把存储在hbase上的kv数据当成表,rowkey可以认为是表的主键.为了便于分布式操作,hbase会把表横向切分成一块一块的数据,而每块就是一个Region.为了提供在线服务,我们必须把Region加载到集群中的某台机器上,这个加载的过程正是region assign要做的.顺便说一句,hbase中把表切分region和HDFS中文件切分成block,Spark中RDD切分成partitions的思想都是一样的. region assgin的流程 reg…
发现有些regison程序操作失败,其他region 都是正常的,重启regionserver 后依然报同样的错误. 首先进入hbase的bin目录,执行下面命令检查表是否有存储一致性问题: hbase hbck -details table 如出现以下提示,则说明有不一致的地方,2表示个数: inconsistencies detected. 既然不一致,咱就尝试修复一下(这个功能要管理权限,使用慎重): hbase hbck -repair table 修复完了以后结果如下: Summary…
业务场景: Kafka+SparkStreaming+Hbase由于数据大量的迁移,再加上业务的改动,新增了很多表,导致rerigon总数接近4万(36个节点) 组件版本: Kafka:2.1.1 Spark:2.2.0-cdh5.12.0 Hbase:1.2.0-cdh5.12.0 问题发现: CDH界面较多关于web服务器相应时间过长,和队列刷新速度较慢.streaming界面,每隔一段时间就会需要较长的处理时间 解决过程: [1] 首先把一些业务不需要的表disable掉,region下线…
先来一张大图. Hbase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写:另外一部分作为BlockCache,主要用于读数据:这里主要介绍写数据的部分,即Memstore.当RegionServer(RS)收到写请求的时候(writerequest),RS会将请求转至相应的Region.每一个Region都存储着一些列(a set of rows).根据其列族的不同,将这些列数据存储在相应的列族中(Column Family,简写CF).不同的CF中的数据存…
hadoop的 namenode又一次格式化以后.重新启动hbase.发现它的hmaster进程启动后立即消失,查看一大堆日志,最后在zookeeper的日志里发现例如以下问题 Unable to read additional data from client sessionid 0x14e86607c850007, likely client has closed socket 解决 方法:删除掉hbase的hdfs-site.xml中一下内容所配置路径下的文件夹.重新启动zookeeper…
1,删除hbase中的 hbase:meta表中相应的region的row 如; get 'hbase:meta','kylin_metadata,,1481101316881.f3b4c7c1148aee68fbaaecd2dfdb9e70.' delete 'hbase:meta','kylin_metadata,,1481101316881.f3b4c7c1148aee68fbaaecd2dfdb9e70.','info:regioninfo' delete 'hbase:meta','k…
今天启动hbase shell,输入hbase命令时报错: ERROR [regionserver/regionserver1/172.18.0.61:16020] reggionserver.HRegionServer: Shutdown / close of WAL failed: org.apache.hadoop.hdfs..server.namenode.LeaseExpiredException: No lease on /hbase/WALs/regionserver1.shaad…
1. 简介 HBase 的最小管理单位为region,region会按照region 分裂策略进行分裂. 基于CDH5.4.2 2. 总览…
HBase的table是该region切分的,client操作一个row的时候,如何知道这个row对应的region是在哪台Region server上呢?这里有个region location过程.主要涉及到2张系统表,-ROOT-,.META..其结构见图 在zookeeper的/hbase/root-region-server节点中存着-ROOT-表所在的Region Server地址. -ROOT-表的一个row代表着META的一个region信息,其key的结构是META表名,META…
1  hbase hbck -repair 强制修复 如果ok就可以 2 不ok,找到hdfs上对应的该表位置,删除,之后在使用hbase hbck -repair 解决过程: 第一次,使用了方法二,然后解决了问题(自己可以查其他博客,有很多这样的博客文章) 第二次,过几天又出现了这种情况,然后用方法1直接修复成功(总结优先使用方法1 ,不行的话,再用方法2强制暴力解决) 产生原因: 1 我使用了Phoenix,然后同时有读和写操作,导致了HBASE不稳定,再加上机器配置不高 2 之后调整了读写…
如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题.在Linux系统中,强大的shell就可以很灵活的处理这样的事务. 下面的shell通过一个while-do循环,用ps -ef|grep 检查loader进程是否正在运行,如果没有运行,则启动,这样就保证了崩溃挂掉的进程重新被及时启动. 必须注意两点: 1.ps |grep 一个进程时必须加上其路劲,否则容易grep到错误的结果: 2.必须用 -v 从结果中去除grep命令自身,否则结果非空. 复制代…
错误如下:Master rejected startup because clock is out of sync org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server localserver3,60020,1476874791987 has been rejected; Reported time is too far out of syn…
结论: 这种情况下复制节点(即从节点)无法提升为主节点,复制节点会一直尝试和主节点建立连接,直接成功.主节点恢复后,复制节点仍然保持为复制节点,并不会成为主节点. 复制节点无法提升为主节点的原因是复制节点未发起成为主节点的选举. 复制节点日志: 14304:S 26 Mar 2019 15:42:01.158 * Connecting to MASTER 10.49.126.98:4076 14304:S 26 Mar 2019 15:42:01.158 * MASTER <-> REPLIC…
昨天回公司加班跑一个LAXCUS大数据应用,JVM直接挂了,没有留下任何异常信息,查看代码,也没有内存泄漏的问题.百思不得姐,只好去求教LAXCUS大数据操作系统的技术客服,客服查看了故障节点配置.日志.JVM后,在启动文件site.sh中加一行参数:-XX:-ReduceInitialCardMarks ,然后再跑就没问题.FQ去google了一下,原来jdk1.5之前的垃圾回收都是串行化,后面版本为了更快GC,会判断机器运行环境,然后动态选择是串行GC还是并行GC.公司的服务器性能显然达到并…
客户一套rac系统,三节点,其中一个节点的p260主机主板有问题(经常机器重启,好像是这个型号的通病,主板被炒到20W),临时把故障节点的vip作为业务地址用. 首先,查看确定故障节点vip飘到那个节点了: crsctl stat res -t ifconfig -a 接下来使用静态监听注册vip地址,来监听业务,添加,11.2 GI的LISTENER 监听器配置默认受到11.2新引入的endpoints_listener.ora配置文件的管理. 注意:使用 endpoints_listener…