首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HBase原理 | HBase RegionServer宕机数据恢复

如果不幸一旦发生RegionServer宕机或者其他异常,这种设计可以从HLog中进行日志回放进行数据补救,保证数据不丢失。HBase故障恢复的最大看点就在于如何通过HLog回放补救丢失数据。...HLog构建:详见另一篇博文《HBase-数据写入流程解析》中相关章节,此处再将HLog的结构示意图拿出来: 上图可以看出,一个HLog由RegionServer上所有Region的日志数据构成,日志数据的最小单元为...HLog滚动:HBase后台启动了一个线程会每隔一段时间(由参数’hbase.regionserver.logroll.period’决定,默认1小时)进行日志滚动,即新生成一个新的日志文件。...HBase故障恢复三部曲 HBase的故障恢复我们都以RegionServer宕机恢复为例,引起RegionServer宕机的原因各种各样,有因为Full GC导致、网络异常导致、官方Bug导致(close...这些场景下一旦RegionServer发生宕机,HBase都会马上检测到这种宕机,并且在检测到宕机之后会将宕机RegionServer上的所有Region重新分配到集群中其他正常RegionServer

2.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hbase 的 WAL 在 RegionServer 基本调用过程

    特别说明 Hbase 不同版本的wal的源码差异比较大,但是原理几乎类似,本文档是采用当前线上使用版本( Hbase1.1.3 )来分析的。...简单原理 有关 hbase 的 wal 基本原理在《Hbase权威指南》以及网络教程中叙述的算比较清晰详尽,在此只做简单的叙述。...WAL(Write-Ahead-Log) 是 HBaseRegionServer 在处理数据插入和删除的过程中用来记录操作内容的一种日志。...本文档在介绍hbase基本“写”原理后着重从源码角度,比较浅显地分析了一个“写”操作后在RegionServer的调用过程,为以后继续更深入学习研究hbase“写”过程梳理了脉络。...相关推荐 Hbase写入hdfs源码分析 Hbase WAL线程模型源码分析 HBase跨版本数据迁移总结

    3.1K11

    一次bug死磕经历之Hbase堆内存小导致regionserver频繁挂掉 编辑

    环境如下: Centos6.5 Apache Hadoop2.7.1 Apache Hbase0.98.12 Apache Zookeeper3.4.6 JDK1.7 Ant1.9.5...这50条数据时,regionserver频繁宕机看hbase的log发现并无明显异常,查看datanode的log发现如下异常: Java代码 java.io.IOException: Premature...,导致垃圾收集时间出现了4,5秒,这下我才有点头绪,hbase是个吃内存的玩意,内存给的少,确实有可能导致regionserver挂掉,于是我查看hbase的堆内存分配情况,发现是默认的1G,这下确实跟这个有很大关系...,50条数据占存储200M,如果每次scan一次,hbase会将其缓存在cache里面,第二次继续scan不同压缩类型的表,会导致内存膨胀,继而引发,regionserver宕机,而给出的异常提示,并不是非常明确...,所以才定位问题比较困难,知道了大概原因所在,然后把hbase的堆内存调到4G,并分发到所有节点上,再次启动,用java 客户端,扫描全表测试,这次非常稳定,regionserver没有出现过再次挂掉的情况

    80770

    Regionserver频繁挂掉故障处理实践

    经过细致并综合分析hbase regionserverhbase master以及 zookeeper的日志,发现了问题所在:tickTime设置导致hbase超时时间错误。...因此,我们将hbase以及regionserver 的堆栈都设置为16G,然后对gc进行优化。...最终,HBase具体优化参数如下所示: export HBASE_HEAPSIZE=16384 export master_heapsize=8192 export regionserver_heapsize...三、分析故障原因 既然通过优化hbase本身无法解决regionserver频繁挂掉的原因,那就必须将分析扩大到hbase相关的进程。与hbase密切相关的是zookeeper。...经过hbase社区求助,以及google类似的问题,最终找到原因(详细链接,请参考:https://superuser.blog/hbase-dead-regionserver/): 原来我们的

    7.8K71

    RegionServer RPC队列请求数较大

    问题描述及原因:HBase RegionServer RPC队列请求数较大可能影响:客户端读写变慢或者超时处理建议: 在EMR控制台进入“集群监控”,点击“DashBoard”,点击 “集群服务...” --> HBASE --> 角色管理 -->RegionServer点击进入,设置指标里选中RPC队列请求数,如下图所示,若只有部分Queue被打满,建议增加改队列的线程数。...具体配置规则如下:图片hbase get、put、scan到服务端后默认是用一个线程池来处理这些请求。...线程池的配置是:hbase.regionserver.handler.count默认是128若集群有比较大的scan时,建议将put、get和scan的线程池拆开,在hbase-site.xml中添加以下配置项...replicationQueue配置:hbase.replication.source.maxthreads 默认是10PriorityQurue配置:hbase.regionserver.metahandler.count

    57160

    Hbase 技术细节笔记(下)

    上篇:Hbase 技术细节笔记(上) 四、RegionServer的故障恢复 我们知道,RegionServer的相关信息保存在ZK中,在RegionServer启动的时候,会在Zookeeper中创建对应的临时节点...当Zookeeper超过session超时时间还未收到RegionServer的ping包,则Zookeeper会认为该RegionServer出现故障,ZK会将该RegionServer对应的临时节点删除...d、Master重新将宕机的RegionServer中的Rgion分配到正常的RegionServer中,对应的RegionServer读取Region的数据,会发现该region目录下的recoverd.edits...d、RegionServer启动对应写线程,将Region buffer的数据写入到HDFS中,路径为/hbase/table/region/seqenceid.temp,seqenceid是一个日志中该...2、Hbase Region拆分的详细流程 Hbase的详细拆分流程图如下: 备注图片来源( https://zh.hortonworks.com/blog/apache-hbase-region-splitting-and-merging

    6.8K96

    HBase 整体介绍

    HBase: NoSQL数据库,基于HDFS的分布式数据库,理论上支持无限横向扩展,         HBase由HMaster与RegionServer组成,HMaster负责协调调度RegionServer...当HBase中表的数据不断变大时,表中数据会进行Region分区,分为Region1,Region2...等,RegionServer1负责Region1,RegionServer2负责Region2等...,所以直接看不到数据内容         HMaster支持HA高可用,所以在HBase集群对应的HMaster和RegionServer都启动后,在其他的RegonServer上启动HMaster...HBase:列式存储,适合处理对单列数据(列族归类的数据)进行快缩索引查询         HBase与Hive的区别                     HBase:数据库,数据分布式存储在HDFS...HBase上,HMaster及RegionServer,MetaRegionServer都是通过ZooKeeper来进行服务感知的,所以需要ZooKeeper部署,             3.

    16210

    深入理解HBase架构

    HBase架构组件 从物理上来说 HBase 由主从模式架构的三种服务组成: RegionServer:负责为读写提供数据。访问数据时,客户端可直接与 RegionServer 进行通信。...Hadoop DataNode 负责存储 RegionServer 管理的数据。所有 HBase 的数据都存储在 HDFS 文件中。...在数据写入 HBase 时满足数据本地性,但是随着 Region 的迁移(由于故障恢复或者负载均衡等原因)可能不再满足本地性了(数据还在原先的 RegionServer 上,只是 Region 交给新的...1.1 RegionServer与Region HBase 表根据 RowKey 的开始和结束范围水平拆分为多个 Region。...HBase Meta表 元数据表 META 表是一个 HBase 表,保存了系统中所有的 Region。META 表类似一棵 B 树。

    1.7K54

    RegionServer 发生full GC次数

    问题描述及原因:HBase RegionServer 发生full gc,内存不足导致可能影响:客户端读写变慢或者超时,RegionServer挂掉处理建议:追查请求变慢原因,分场景解决 场景1 RegionServer...堆内内存配置太小 在EMR控制台进入“集群服务”,点击“HBase”,点击 配置管理 --> hbase-env.sh --> HeapsizeEMR默认值是1024,即1G,购买集群后需要根据业务调整...,一般建议regionserver内存占用机器40%-70%左右按业务需求和集群规划调整regionserver内存,并在业务低峰期滚动重启rs。...场景2 RS堆内内存较大,读QPS很高 若第一个场景没问题,即regionserver当前内存已经占机器内存很大一部分,并且集群的读QPS远大于写QPS,建议将读缓存存在堆外,在hbase-site.xml...场景3 RS堆内内存较大,写QPS很高 若场景1、场景2都没问题,regionserver依然full gc,同时集群的写QPS较高,可以在hbase-site.xml中加入以下配置项hbase.regionserver.global.memstore.size.lower.limit

    58410

    ZooKeeper在HBase中的应用

    系统容错 当HBase启动时,每个RegionServer都会到ZooKeeper的/hbase/rs节点下创建一个信息节点(下文中,我们称该节点为”rs状态节点”),例如/hbase/rs/[Hostname...当某个 RegionServer 挂掉的时候,ZooKeeper会因为在一段时间内无法接受其心跳(即 Session 失效),而删除掉该 RegionServer 服务器对应的 rs 状态节点。...HBase为什么不直接让HMaster来负责RegionServer的监控呢?...分布式SplitWAL任务管理 当某台RegionServer服务器挂掉时,由于总有一部分新写入的数据还没有持久化到HFile中,因此在迁移该RegionServer的服务时,一个重要的工作就是从WAL...当前的做法是,HMaster会在ZooKeeper上创建一个SplitWAL节点(默认情况下,是/hbase/SplitWAL节点),将“哪个RegionServer处理哪个Region”这样的信息以列表的形式存放到该节点上

    2.4K30
    领券