Hbase 元数据一致性检查(转)
最近在学习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 元数据一致性检查(转)的更多相关文章
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
		操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ... 
- pt-table-checksum 主从复制一致性检查
		1. pt-table-checksum介绍 http://www.percona.com/doc/percona-toolkit/2.2/pt-table-checksum.html pt-tabl ... 
- 供应类型与计划分类一致性检查(PO)
		应用 Oracle Purchasing 层 Level Function 函数名 Funcgtion Name CUXPOIMM 表单名 Form Name CUXPOIMM 说明 Descri ... 
- 供应类型与计划分类一致性检查(INV)
		应用 Oracle Inventory 层 Level Function 函数名 Funcgtion Name CUXINVIMM 表单名 Form Name CUXINVIMM 说明 Descrip ... 
- FC 与 FB  与 OB 的区别,时间标记冲突与一致性检查  有详细的步骤
		关键字1 组织块的程序是由用户自己编写. 关键字2 时间标记冲突与一致性检查 有详细的步骤. 关键字3 FC 与 FB 与 OB 的区别? (一)功能 功能块 区别 ? FB 和FC均为 用户编写 ... 
- mysql 主从一致性检查
		我上一次遇到MySQL主从服务器数据一致性问题,想想是几年前的事情了,还依稀记得当时惊慌失措的情景,好在最后借助Maatkit解决了问题.几年后,当我再次面对同样的问题时,Maatkit已经不复存在, ... 
- TIKV副本一致性检查机制分析
		背景 TIKV使用raft协议来实现副本同步,任何时刻写入一个KEY-VAL键值对,都会基于RAFT协议复制到不同机器的三个副本上,raft协议本身能保证副本同步的强一致性,但是任何系统都可能存在BU ... 
- pt工具主从一致性检查并修复以及版本3.0.4的版本缺点
		pt-table-checksum和pt-table-sync分别检验master-slave的数据不一致并修复. 1.本次测试环境 [root@172-16-3-190 we_ops_admin]# ... 
- git fsck  -- 一致性检查
		格式: git fsck [选项] <path> 选项 git commit -a 提交所有改动的文件(a -- all) git commit -m 提交说明(m ... 
随机推荐
- Linux(Centos7)下搭建SVN服务器  (转载)
			系统环境:centos7.2 第一步:通过yum命令安装svnserve,命令如下: yum -y install subversion 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停 ... 
- 中科曙光I620-G15服务器登录密码破解
			服务器型号:中科曙光I620-G15服务器 系统:windowsserver2008R2 单位:保密 服务器登录密码忘记了,进不去桌面,后来在我们云修网工程师的指导下,顺利绕过密码登录系统,然后修改系 ... 
- C# -- 结构、访问修饰符
			C# -- 结构.访问修饰符 1. 结构: struct 类型 对于结构,不像类那样存在继承. 一个结构不能从另一个结构或类继承,而且不能作为一个类的基. 但是,结构从基类 Object 继承. 结构 ... 
- SQLServer之创建全文索引
			创建全文索引的必须条件 必须具有全文目录,然后才能创建全文索引. 目录是包含一个或多个全文索引的虚拟容器. 使用SSMS数据库管理工具创建全文索引 1.连接数据库,选择数据库,选择数据表->右键 ... 
- LeetCode算法题-Sum of Square Numbers(Java实现)
			这是悦乐书的第276次更新,第292篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第144题(顺位题号是633).给定一个非负整数c,判断是否存在两个整数a和b,使得a的 ... 
- LeetCode算法题-Keyboard Row(Java实现)
			这是悦乐书的第245次更新,第258篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第112题(顺位题号是500).给定一个单词列表,返回可以在美国键盘的一行上使用字母表键 ... 
- Extjs 在Grid单元中格添加Tooltip提示
			Grid 中的单元格添加Tooltip 的效果 Ext.QuickTips.init(); //必须要… columns: [ { text: 'Name', dataIndex: 'name' }, ... 
- Spark中的一些概念
			最近工作用到Spark,这里记一些自己接触到的Spark基本概念和知识. 本文链接:https://www.cnblogs.com/hhelibeb/p/10288915.html 名词 RDD:在高 ... 
- 浅析foreach语句
			本篇是我对于foreach语句(增强for)的总结: 我的总结流程如下: 1.先整体说明增强for遍历集合与数组之间的区别. 2.通过一维数组来说明(给出反编译的源码,形成对照). 3.通过二维数组来 ... 
- day19-网络编程基础(二)
			今天没有很多概念性的东西,主要是方法性的东西以及编程的一些方法吧 今日份目录 1.UDP传输的特点以及实验 2.UTP与UDP传输的区别 3.基于tcp的low版带验证功能的FTP小程序 4.基于so ... 
