HBase Region 各个状态的转换】的更多相关文章

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…
参与 Region 分配的重要对象 在 Region 分配过程中,起着重要作用有如下一些对象. HMaster— 是 HBase 中的 Master server ,仅有一个. HRegionServer--- 负责多个 HRegion 使之能向 client 端提供服务,在 HBase cluster 中存在多个HRegionServer . ServerManager--- 负责管理 Region server 信息,比如每个 Region server 的 HServerInfo( 这个对…
问题现象: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:…
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…
Java线程:线程状态的转换   一.线程状态   线程的状态转换是线程控制的基础.线程状态总的可分为五大状态:分别是生.死.可运行.运行.等待/阻塞.用一个图来描述如下:   1.新状态:线程对象已经创建,还没有在其上调用start()方法.   2.可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态.当start()方法调用时,线程首先进入可运行状态.在线程运行之后或者从阻塞.等待或睡眠状态回来后,也返回到可运行状态.   3.运行状态:线程调度程序从可运行池中…
一.遇到的神奇的事情 使用jpa操作数据库,当我使用findAll()方法查处一个List的对象后,给对这个list的实体进行了一些操作,并没有调用update 或者 saveOrUpdate方法,更改后的数据却神奇的保存到数据库里面去了. 最后简单粗暴的解决办法是把这份从数据里面查出来的List  复制了一份,然后再操作,再返回.数据就正常了,数据库也没更新.后面找了资料才发现是jpa是对hibernate的封装,底层是hibernate,这是hibernate的持久状态搞的鬼. 二.hibe…
一.遇到的神奇的事情 使用jpa操作数据库,当我使用findAll()方法查处一个List的对象后,给对这个list的实体进行了一些操作,并没有调用update 或者 saveOrUpdate方法,更改后的数据却神奇的保存到数据库里面去了. 最后简单粗暴的解决办法是把这份从数据里面查出来的List 复制了一份,然后再操作,再返回.数据就正常了,数据库也没更新.后面找了资料才发现是jpa是对hibernate的封装,底层是hibernate,这是hibernate的持久状态搞的鬼. 二.hiber…
java线程有6种状态: 新建线程new,启动线程runnable,阻塞block,限时等待timed_waiting,等待线程waiting,终止线程terminated 1.限时等待timed waiting :处于这种状态的线程不会被分配cpu执行时间.不过无须等待被其他线程显式地唤醒,在一定时间之后它们会由系统自动唤醒.以下方法会让线程进行限时等待状态: a.  Thread.sleep()方法; b.  设置了Timeout参数的Object.wait()方法; c.  设置了Time…
[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…
1.概述 HBase中表的基本单位是Region,日常在调用HBase API操作一个表时,交互的数据也会以Region的形式进行呈现.一个表可以有若干个Region,今天笔者就来和大家分享一下Region合并的一些问题和解决方法. 2.内容 在分析合并Region之前,我们先来了解一下Region的体系结构,如下图所示: 从图中可知,能够总结以下知识点: HRegion:一个Region可以包含多个Store: Store:每个Store包含一个Memstore和若干个StoreFile: S…
分裂策略 不同的分裂策略的实现需要继承RegionSplitPolicy,主要实现两个方法: shouldSplit()表示是否需要分裂 getSplitPoint()得到分裂点rowkey 从 HBase 0.94之后,默认的分裂策略是IncreasingToUpperBoundRegionSplitPolicy ,思想就是当Region的大小超过某个阈值时,即进行分裂. 这个阈值主要由如下几个因素决定: hbase.hregion.max.filesize hbase.increasing.…
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.ap…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwoAAACdCAMAAAAjbX91AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK…
很好低使用git 文件的状态转换的了解是非常重要的. 文件转换状态其实可以分为四种: untracked:未跟踪,此文件在工作区中,但并没有加入git库,不参与版本控制. 通过”git add”,”git commit”可将它置入跟踪库. unmodify:文件已经git库中,未修改,即版本库中的文件快照内容与工作区中完全一致.这种类型的文件有两个去处,如果它被修改,而成为modified.如果使用”git rm”移出版本库,则成为untracked文件. modified: 文件已修改,仅仅是…
我们会经常谈及二级索引,这是对全表数据进行另外一种方式的组织存储,是针对table级别的.如果要为HBase上的表实现一个强一致性的二级索引,那么就无法逃避分布式事务,而这一直是用户最期待的功能. 而即使只需要保证最终一致性,这个索引也并不好实现,因为你需要额外的表以存储过程数据,需要解决宕机恢复问题等 撇开分布式事务,我们是否可以考虑对索引的要求进行降级,比如把Region看成是全表下的子表,实现一套Region级别的索引,通过功能上的牺牲以换取实现的简易及稳定. 在某些存在用户概念的场景下,…
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…
*由于工作需要,需要利用MediaCodec实现Playback及Transcode等功能,故在学习过程中翻译了Google官方的MediaCodec API文档,由于作者水平限制,文中难免有错误和不恰当之处,望批评指正. *转载请注明出处:http://www.cnblogs.com/roger-yu/ 概述 在MediaCodec的生命周期内存在三种状态:Stopped, Executing or Released,其中 Stopped状态包含三种子状态:Uninitialized, Con…
1. 简介 HBase 的最小管理单位为region,region会按照region 分裂策略进行分裂. 基于CDH5.4.2 2. 总览…
线程的状态转化关系(1). 新建状态(New):新创建了一个线程对象.(2). 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权.(3). 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码.(4). 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行.直到线程进入就绪状态,才有机会转到运行状态.阻塞的情况分三种:- 等待阻塞(WAITIN…
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…
Region的概念 Region是HBase数据管理的基本单位.数据的move,数据的balance,数据的split,都是按照region来进行操作的. region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region. 一个表中可以包含一个或多个Region. 每个Region只能被一个RS(RegionServer)提供服务,RS可以同时服务多个Region,来自不同RS上的Region组合成表格的整体逻辑视图. regionServer其实…
发现有些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中的数据存…
hibernate的状态 hibernate的各种保存方式的区(save,persist,update,saveOrUpdte,merge,flush,lock)及 对象的三种状态 hibernate 的保存 hibernate对于对象的保存提供了太多的方法,他们之间有很多不同,这里细说一下,以便区别. 一.预备知识 在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient[自由态].persistent[持久化状态].detached[游离态] 下边是常见的翻译办法…
最近老遇到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…
错误如下: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…
基本状态标识 A- = untracked 未跟踪 A = tracked 已跟踪未修改 A+ = modified - 已修改未暂存 B = staged - 已暂存未提交 C = committed - 已提交未PUSH 各状态之间变化 A- -> B : git add <FILE> B -> A- : git rm --cached <FILE> B -> 删除不保留文件 : git rm -f <FILE> A -> A- : git…
java体系中线程的实现 1.使用内核线程实现 内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上,每个内核线程可以视作内核的一个分身,这样操作系统就有能力处理多件事情,支持多线程的内核就叫做多线程内核,程序一般不会其使用内核线程,而是去使用内核线程的一种高级接口:轻量级进程,轻量级进程就是我们通常意义上的线程,由于每个轻量级进程都有一个内核线程支持,因此只有先支持内核线程,才能有轻量级进程(1:1关系)…