最近在学习HBase先关的知识,顺便做一下笔记,以加深知识的了解和掌握。

Hbase常用工具

文件检测修复工具

hbase hbck -help

常用选项:

-details 显示所有region检查的完整报告

-summary 输出表和状态的总结信息

-metaonly 只检查-ROOT-和.META.表

-fixAssignments 用于修复Region分配错误

-fixMeta 用于修复.META.表的问题(前提是HDFS上的region信息是正确的)

-fixHdfsHoles 修复RegionHoles问题

-fixHdfsOrphans 修复Orphan Region(HDFS上没有.regioninfo的Region)

-fixHdfsOverlaps 修复Region区间重叠的问题

-fixVersionFile 修复缺失hbase.version文件问题

快速修复元数据选项

-repair 相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps

-repairHoles 相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans

检测Hbase集群是否有文件损坏

hbase hbck

hbase hbck -details

快速修复元数据损坏

使用快速修复元数据选项是解决不一致问题风险最低的一种方法

hbase hbck -repair

hbase hbck -repairHoles

修复Region叠加的问题(风险系数高)

hbase hbck -fixHdfsOrphans

#合并region的时候,一次最大合并3个

hbase hbck -fixHdfsOverlaps -maxMerge 3

hbase hbck -fixHdfsOverlaps -sidelineBigOverlaps

#一组中最多允许4个region不参与

hbase hbck -fixHdfsOverlaps -maxOverlapsToSideline 4

修复.META.表没有正确分配

hbase hbck -fixMetaOnly -fixAssignments

修复版本(hbase.version)丢失的问题

hbase hbck -fixMetaOnly -fixVersionFile

修复-ROOT-和.META.表损坏

当-ROOT-和.META.表损坏的时候,HBase将启动失败,这种情况下要使用OFFlineMetaRepair工具创建新的-ROOT-和.META.表。该工具的工作原理是找到HBase在HDFS的主目录,加载Region的元数据文件信息,然后重新创建新的-ROOT-和.META.表,命令如下:

hbase org.apache.hadoop.hbase.util.OffileMetaRepair


hfile文件查看

hbase hfile -v -p -f hiflepath/hiflename

WAL日志查看

hbase hlog -j hlogpath/hlogfilename


数据迁移工具

CopyTable  用于在同集群内部或者集群之间复制表的部分或者全部数据的工具

export 可以将表的内容导出成HDFS的序列化文件

import 可以加载导出数据回HBase

WALPlayer 日志回放工具,可以重放WAL文件到HBase


Region和RegionServer的管理

major_compact一般会对IO有比较大的影响,因此一般禁用线上系统的自动大合并(配置文件中hbase.hregion.majorcompaction设为0),而采用脚步触发的方式来进行合并

major_compact可以对表、region、列族等进行合并,常用的是对表和对表的单个region进行大合并,命令如下:

对表进行大合并

major_compact 'tablename'

对表的单个region进行大合并

major_compact 'regionname' #tablename


下线regionServer节点

balance_switch false

cd  /data/hbaseadmin/hbaseenv/hbase/bin;  ./hbase-daemon.sh stop regionserver

RegionServer会关闭该server上所有的region,然后关闭自身的进程,在停止过程中,RegionServer会向ZK报告说自己已经过期。master会发现RegionServer已经死掉,会把它当作崩溃的节点来处理,然后会将Region分配到其他的节点上。

下线节点后再开始负载均衡

balance_switch true

优雅地下线RegionServer节点

当RegionServer下线的时候,Region按顺序被关闭,如果一个RegionServer上有很多Region,从第一个Region下线,到最后一个Region关闭,并且Master认为其死掉了,该Region才可以上线,整个过程要花很长的时间。HBase 0.90.2中加入了一个graceful_stop的功能,该功能可以让节点逐渐降低其负载,直到最后关闭。

优雅下线1台RegionSever的命令为:

graceful_stop RegionServer_HOSTNAME

graceful_stop做的工作是逐个地讲Region从RegionServer中移除,先移除一个Region,然后将这个Region安置到一个新的地方,再移除下一个,直到Region被全部移除。最后关闭RegionServer。

滚动重启

for i in `cat conf/regionservers | sort`;do graceful_stop.sh --restart --reload --debug $i;done &  > /tmp/log.txt &

滚动重启,并解决本地化问题

1、运行hbck确保一致性

hbase hbck

2、重启master

cd /data/hbaseadmin/hbaseenv/hbase/bin && ./hbase-daemon.sh stop master

./hbase-daemon.sh start master

3、关闭负载均衡器

echo  "balance_switch false" | hbase shell

4、滚动重启RegionServer

for i in `cat conf/regionservers | sort`;do graceful_stop.sh --restart --reload --debug $i;done &  > /tmp/log.txt &

5、再次重启Master

cd /data/hbaseadmin/hbaseenv/hbase/bin && ./hbase-daemon.sh stop master

./hbase-daemon.sh start master

6、开启负载均衡器

echo  "balance_switch true" | hbase shell

7、运行hbck确保数据一致

hbase hbck

作者:飞鸿无痕
链接:https://www.jianshu.com/p/d34d633460fe

Hbase 元数据一致性检查(转)的更多相关文章

  1. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  2. pt-table-checksum 主从复制一致性检查

    1. pt-table-checksum介绍 http://www.percona.com/doc/percona-toolkit/2.2/pt-table-checksum.html pt-tabl ...

  3. 供应类型与计划分类一致性检查(PO)

    应用 Oracle   Purchasing 层 Level Function 函数名 Funcgtion Name CUXPOIMM 表单名 Form Name CUXPOIMM 说明 Descri ...

  4. 供应类型与计划分类一致性检查(INV)

    应用 Oracle Inventory 层 Level Function 函数名 Funcgtion Name CUXINVIMM 表单名 Form Name CUXINVIMM 说明 Descrip ...

  5. FC 与 FB 与 OB 的区别,时间标记冲突与一致性检查 有详细的步骤

    关键字1 组织块的程序是由用户自己编写. 关键字2 时间标记冲突与一致性检查 有详细的步骤. 关键字3 FC 与 FB 与 OB 的区别?   (一)功能 功能块 区别 ? FB 和FC均为 用户编写 ...

  6. mysql 主从一致性检查

    我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题.几年后,当我再次面对同样的问题时,Maatkit已经不复存在, ...

  7. TIKV副本一致性检查机制分析

    背景 TIKV使用raft协议来实现副本同步,任何时刻写入一个KEY-VAL键值对,都会基于RAFT协议复制到不同机器的三个副本上,raft协议本身能保证副本同步的强一致性,但是任何系统都可能存在BU ...

  8. pt工具主从一致性检查并修复以及版本3.0.4的版本缺点

    pt-table-checksum和pt-table-sync分别检验master-slave的数据不一致并修复. 1.本次测试环境 [root@172-16-3-190 we_ops_admin]# ...

  9. git fsck -- 一致性检查

    格式:           git fsck  [选项] <path> 选项 git commit -a 提交所有改动的文件(a -- all) git commit -m 提交说明(m ...

随机推荐

  1. Oracle 12c RAC 安装文档

    参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...

  2. Linux IO 模型

    Linux 中主要有五种IO模式:阻塞IO, 非阻塞IO, IO 多路复用,信号驱动IO和异步IO; 如果从同步非同步,阻塞非阻塞角度来看,又可以分为:同步阻塞IO, 同步非阻塞IO,异步阻塞IO和异 ...

  3. .NET 术语

    .NET 术语 1. AOT 预编译器.与 JIT 类似,此编译器还可将 IL 转换为机器代码. 与 JIT 编译相比,AOT 编译在应用程序执行前进行并且通常在不同计算机上执行. 由于在运行时 AO ...

  4. Saltstack_使用指南02_远程执行-验证

    1. 主机规划 2. Master与哪些minion通信 2.1. Master与哪些minion正常通信 [root@salt100 ~]# salt '*' test.ping salt100: ...

  5. 研究好vif 和vshow

    另外从源头上处理的???,怎么自己排查出错误??必须 ??https://www.jb51.net/article/124116.htm

  6. vue 路由元信息

    官方文档:路由meta元信息 前言: 在设置面包屑导航还有菜单栏的时候,路由的meta字段可以自定义我们需要的信息,然后路由跳转的时候,提供我们判断条件 文档: 定义路由的时候可以配置 meta 字段 ...

  7. Vue 自定义一个插件的用法、小案例及在项目中的应用

    1.开发插件 install有两个参数,第一个是Vue构造器,第二个参数是一个可选的选项对象   MyPlugin.install = function (Vue, options) {   // 1 ...

  8. tmux编译安装

    依赖libevent,ncurses libevent 2.x 官网:http://libevent.org 下载:https://github.com/libevent/libevent/relea ...

  9. 11-page分页原理

    创建一个分页对象PageBean<T>来存储分页信息+实体信息, 客户端请求时传递分页信息, 服务端将实体信息+分页信息放进分页对象返回给客户端. 实例如下: listStudent.js ...

  10. web服务器、tomcat、servlet是什么?它们之间的关系又是什么?

    今天偶然看到常见web服务器的介绍有Apache HTTP server.Nginx.Microsoft IIS.GWS,心中不禁产生了疑问,这些都是什么呢?一直认为tomcat就是web服务器,以下 ...