hbase hbck(元数据修复)深入_hbase hbck -repairholes可以同时修复多个表

本文介绍了如何使用HBase的hbck工具进行表一致性检查和修复,包括区域一致性、表完整性问题的处理方法,以及不同版本的hbck工具特性和命令行选项。重点讨论了区域分配、部署问题的修复步骤和低风险修复策略。
摘要由CSDN通过智能技术生成

$ ./bin/hbase hbck -details
如果您只想知道某些表是否已损坏,则可以限制hbck以仅在特定表中标识不一致。例如,以下命令只会尝试检查表TableFoo和TableBar。好处是hbck运行时间更短。

$ ./bin/hbase hbck TableFoo TableBar
C.2。不一致性
如果经过多次运行,不一致仍会继续报告,您可能会遇到腐败现象。这些应该是罕见的,但是如果它们发生在较新版本的HBase中,则包括启用了自动修复选项的hbck工具。

有两个不变式在违反HBase时会产生不一致:

如果每个区域都被分配和部署在一个区域服务器上,并且这个状态保存的所有地方都是一致的,那么HBase的区域一致性不变是满足的。

如果对于每个表,每个可能的行键只解析为一个区域,HBase的表完整性不变是满足的。

修复通常分三个阶段进行:识别不一致的只读信息收集阶段,恢复表完整性不变的表完整性修复阶段,以及最后恢复区域一致性不变的区域一致性修复阶段。从版本0.90.0开始,hbck可以检测关于可能的表完整性问题的子集的区域一致性问题报告。它还包括自动修复最常见的不一致性,区域分配和部署一致性问题的能力。此修复可以通过使用-fix命令行选项完成。如果这些问题在错误的服务器或多个区域服务器上打开,则这些问题会关闭区域,并且如果区域服务器未打开,也会将区域分配给区域服务器

从HBase版本0.90.7,0.92.2和0.94.0开始,引入了几个新的命令行选项来帮助修复损坏的HBase。这个hbck有时会被昵称“uberhbck”取代。每个特定版本的uber hbck都与相同主版本的HBase兼容(0.90.7 uberhbck可以修复0.90.4)。但是,版本.90.90.6和版本⇐0.92.1可能需要重新启动主节点或故障转移到备份主节点。

C.3。本地化维修
修复损坏的HBase时,最好先修复最低风险的不一致。这些通常是区域一致性修复 - 局部单一区域修复,它只修改内存数据,临时动物园管理员数据或META表中的修补程序漏洞。区域一致性要求HBase实例具有HDFS(.regioninfo文件)中区域数据的状态,hbase:meta表中的区域行,以及区域服务器和主区域上的区域部署/分配。修复区域一致性的选项包括:

-fixAssignments(相当于0.90 -fix选项)可修复未分配,错误分配或乘数分配的区域。

-fixMeta当HDFS中不存在相应的区域时删除元行,并且如果它们的区域存在于HDFS中而不在META中则添加新的元行。要修复部署和分配问题,您可以运行以下命令:

$ ./bin/hbase hbck -fixAssignments
要修复部署和分配问题以及修复不正确的元行,您可以运行以下命令:

$ ./bin/hbase hbck -fixAssignments -fixMeta
有几类表完整性问题是低风险修复。前两个是简并(startkey == endkey)区域和向后区域(startkey> endkey)。这些通过将数据旁路到临时目录(/ hbck / xxxx)来自动处理。第三个低风险类是hdfs地区漏洞。这可以通过使用以下来修复:

-fixHdfsHoles选项用于在文件系统上制作新的空白区域。如果检测到漏洞,则可以使用-fixHdfsHoles,并应包含-fixMeta和-fixAssignments以使新区域保持一致。

$ ./bin/hbase hbck -fixAssignments -fixMeta -fixHdfsHoles
由于这是一种常见操作,因此我们添加了一个-repairHoles与上一个命令等效的标志:

$ ./bin/hbase hbck -repairHoles
如果这些步骤之后仍然存在不一致问题,则很可能出现与孤立或重叠区域相关的表完整性问题。

C.4。地区重叠修理
表完整性问题可能需要处理重叠的修复。这是一项风险较大的操作,因为它需要修改文件系统,需要做出一些决策,并且可能需要一些手动步骤。对于这些修理,最好分析一次hbck -details 运行的输出,以便在检查发现问题时仅隔离维修尝试。因为这是更危险的,所以应该使用保护来限制维修的范围。警告:这是一个相对较新的版本,只在线上测试过,但闲置的HBase实例(没有读/写)。在积极的生产环境中使用您自己的风险!修复表完整性违规的选项包括:

-fixHdfsOrphans 选择“采用”缺少区域元数据文件(.regioninfo文件)的区域目录。

-fixHdfsOverlaps固定重叠区域的能力

在修复重叠区域时,可以通过两种方式在文件系统上修改区域的数据:1)通过将区域合并到更大的区域中或2)通过将数据移动到稍后可以恢复数据的“sideline”目录的旁路区域。合并大量区域在技术上是正确的,但可能导致需要一系列昂贵的压缩和分裂操作的非常大的区域。在这些情况下,最好将与其他大多数地区(可能是最大范围)重叠的地区划分开来,以便合并可以在更合理的范围内进行。由于这些边界区域已经布局在HBase的本地目录和HFile格式中,因此可以使用HBase的批量加载机制进行恢复。默认的保障阈值是保守的。

-maxMerge 最大数量的重叠区域要合并

-sidelineBigOverlaps 如果超过maxMerge区域重叠,副业尝试旁路与其他大多数区域重叠的区域。

-maxOverlapsToSideline 如果大面积重叠的地区,副业最多n个地区。

由于您经常只想修复表格,因此您可以使用此选项打开所有修复选项:

-repair 包括所有区域一致性选项以及只有孔修复表完整性选项。

最后,还有一些保护措施可以限制对特定表格的修复。例如,以下命令只会尝试检查并修复表格TableFoo和TableBar。

$ ./bin/hbase hbck -repair TableFoo TableBar
C.4.1。特殊情况:Meta未正确分配

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值