`
bupt04406
  • 浏览: 350167 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hbase hbck

 
阅读更多

https://issues.apache.org/jira/browse/HBASE-5128 

https://github.com/jmhsieh/hbase-repair-scripts 

 

HBASE-5128之前版本的HBCK:

检查master、regionserver内存中的状态以及hdfs上面数据的状态之间的一致性 

 

(1)获取所有region的信息(regioninfo):通过zk获得-ROOT-地址,通过扫描-ROOT-表和.META.表,就获得了所有region的信息 

(2)遍历所有的region,获得所有表信息 

(3)通过ClusterStatus获得regionserver信息 

(4)多线程连接每个regionserver,获得这个regionserver上面online的region信息。记录下region是在那个regionserver上面 

(5)遍历hbase.rootdir,获得所有的table,多线程遍历各个table的目录,记录下region是在那个目录下面 

(6)通过zk获得所有disabled的tables 

(7)检查一致性,检查每一个region 

      正常的状态是: 

      【1】在META表中,hdfs上面有,表不是disabled的, region在某个regionserver的online region集合中,META表中记录的server信息和open了这个region的regionserver一致,并且没有被多个regionserver同时服务 

      【2】在META表中,region是split完的Parent region,没有被某个regionserver服务 

      【3】在META表中,表是disabled的,并且没有被某个regionserver服务 

      异常的状态是: 

     (7.1)如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中,那么输出NOT_IN_META_HDFS错误信息 

     (7.2)如果一个region不在META表中,又不在regionserver的online region集合中,但是在hdfs上面,输出NOT_IN_META_OR_DEPLOYED错误信息 

     (7.3)如果一个region不在META表中,但是在hdfs上面有,并且在regionserver的online region集合中,那么输出NOT_IN_META错误信息 

     (7.4)如果一个region在META表中,但是在hdfs上面没有,并且也不在regionserver的online region集合中,那么输出NOT_IN_HDFS_OR_DEPLOYED错误信息 

     (7.5)如果一个region在META表中,并且在regionserver的online region集合中有,但是在hdfs上面没有,那么输出NOT_IN_HDFS错误信息 

     (7.6)如果一个region在META表中,在hdfs上面也有,但是不再online region集合中,并且这个region所在的table不是Disabled的,那么输出NOT_DEPLOYED错误信息。 可以修复 

     (7.7)如果一个region在META表中,在hdfs上面有,在online region集合中,如果这个region所在的table是Disabled的,那么输出SHOULD_NOT_BE_DEPLOYED错误信息。 

     (7.8)如果一个region在META表中,在hdfs上面有,但是被在多个regionserver的online region集合中,那么输出MULTI_DEPLOYED错误信息。可以修复 

     (7.9)如果一个region在META表中,在hdfs上面也有,也应该被服务,但是META表中记录的regionserver和实际所在的regionserver不相符,那么输出SERVER_DOES_NOT_MATCH_META错误信息。可以修复 

     (7.10)如果是其他情况,输出UNKNOWN 

(8)检查完整性,以table为单位,遍历每个table 

     (8.1)table的第一个region的startKey必须是EMPTY_BYTE_ARRAY,否则输出FIRST_REGION_STARTKEY_NOT_EMPTY信息 

     (8.2)如果这个table有(startKey=endKey)的region,输出DEGENERATE_REGION信息 

     (8.3)如果两个region的区间有重叠,startKey相同输出DUPE_STARTKEYS信息,不相同输出OVERLAP_IN_REGION_CHAIN信息 

     (8.4)如果某个区间没有region,输出HOLE_IN_REGION_CHAIN信息(空洞) 

(9)打印table的总结信息 

 

 

hbck加上 -fix 可以自己修复下面三种情况: 

(7.6)如果一个region在META表中,在hdfs上面也有,但是不再online region集合中,并且这个region所在的table不是Disabled的,那么输出NOT_DEPLOYED错误信息。 

(7.8)如果一个region在META表中,在hdfs上面有,但是被在多个regionserver的online region集合中,那么输出MULTI_DEPLOYED错误信息。 

(7.9)如果一个region在META表中,在hdfs上面也有,也应该被服务,但是META表中记录的regionserver和实际所在的regionserver不相符,那么输出SERVER_DOES_NOT_MATCH_META错误信息。

 

原先的hbck检测region的一致性和table的完整性,但是需要管理员自己修复,修复后,如果一致性和完整性没有问题,通过OfflineMetaRepair来构造新的META表 

 

HBASE-5128 中的hbck能够检测region的一致性和table的完整性,并且可以修复完整性和一致性相关的问题 

所以有了新版的hbck,这个github上面的脚本用途不是特别大 

 

新版的hbck

 

新版本的 hbck 可以修复各种错误,修复选项是: 

(1)-fix,向下兼容用,被-fixAssignments替代 

(2)-fixAssignments,用于修复region assignments错误 

(3)-fixMeta,用于修复meta表的问题,前提是HDFS上面的region info信息有并且正确。 

(4)-fixHdfsHoles,修复region holes(空洞,某个区间没有region)问题 

(5)-fixHdfsOrphans,修复Orphan region(hdfs上面没有.regioninfo的region) 

(6)-fixHdfsOverlaps,修复region overlaps(区间重叠)问题 

(7)-fixVersionFile,修复缺失hbase.version文件的问题 

(8)-maxMerge <n> (n默认是5),当region有重叠是,需要合并region,一次合并的region数最大不超过这个值。 

(9)-sidelineBigOverlaps ,当修复region overlaps问题时,允许跟其他region重叠次数最多的一些region不参与(修复后,可以把没有参与的数据通过bulk load加载到相应的region) 

(10)-maxOverlapsToSideline <n> (n默认是2),当修复region overlaps问题时,一组里最多允许多少个region不参与 

由于选项较多,所以有两个简写的选项 

(11) -repair,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps 

(12)-repairHoles,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans 

 

 

 

新版本的 hbck 

(1)缺失hbase.version文件 

 加上选项 -fixVersionFile 解决 

(2)如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中 

 加上选项 -fixAssignments 解决 

(3)如果一个region在META表中,并且在regionserver的online region集合中,但是在hdfs上面没有 

 加上选项 -fixAssignments -fixMeta 解决,( -fixAssignments告诉regionserver close region),( -fixMeta删除META表中region的记录) 

(4)如果一个region在META表中没有记录,没有被regionserver服务,但是在hdfs上面有 

加上选项 -fixMeta -fixAssignments 解决,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的记录) 

(5)如果一个region在META表中没有记录,在hdfs上面有,被regionserver服务了 

加上选项 -fixMeta 解决,在META表中添加这个region的记录,先undeploy region,后assign 

(6)如果一个region在META表中有记录,但是在hdfs上面没有,并且没有被regionserver服务 

加上选项 -fixMeta 解决,删除META表中的记录 

(7)如果一个region在META表中有记录,在hdfs上面也有,table不是disabled的,但是这个region没有被服务 

加上选项 -fixAssignments 解决,assign这个region 

(8)如果一个region在META表中有记录,在hdfs上面也有,table是disabled的,但是这个region被某个regionserver服务了 

加上选项 -fixAssignments 解决,undeploy这个region 

(9)如果一个region在META表中有记录,在hdfs上面也有,table不是disabled的,但是这个region被多个regionserver服务了 

加上选项 -fixAssignments 解决,通知所有regionserver close region,然后assign region 

(10)如果一个region在META表中,在hdfs上面也有,也应该被服务,但是META表中记录的regionserver和实际所在的regionserver不相符 

加上选项 -fixAssignments 解决 

 

(11)region holes 

需要加上 -fixHdfsHoles ,创建一个新的空region,填补空洞,但是不assign 这个 region,也不在META表中添加这个region的相关信息 

(12)region在hdfs上面没有.regioninfo文件 

-fixHdfsOrphans 解决 

(13)region overlaps 

需要加上 -fixHdfsOverlaps 

 

 

说明: 

(1)修复region holes时,-fixHdfsHoles 选项只是创建了一个新的空region,填补上了这个区间,还需要加上-fixAssignments -fixMeta 来解决问题,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的记录),所以有了组合拳 -repairHoles 修复region holes,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans 

(2) -fixAssignments,用于修复region没有assign、不应该assign、assign了多次的问题 

(3)-fixMeta,如果hdfs上面没有,那么从META表中删除相应的记录,如果hdfs上面有,在META表中添加上相应的记录信息 

(4)-repair 打开所有的修复选项,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps 

 

新版本的hbck从(1)hdfs目录(2)META(3)RegionServer这三处获得region的Table和Region的相关信息,根据这些信息判断并repair

分享到:
评论

相关推荐

    MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost时间序列预测(含模型描述及示例代码)

    内容概要:本文档详细介绍了基于 MATLAB 实现的 LSTM-AdaBoost 时间序列预测模型,涵盖项目背景、目标、挑战、特点、应用领域以及模型架构和代码示例。随着大数据和AI的发展,时间序列预测变得至关重要。传统方法如 ARIMA 在复杂非线性序列中表现欠佳,因此引入了 LSTM 来捕捉长期依赖性。但 LSTM 存在易陷局部最优、对噪声鲁棒性差的问题,故加入 AdaBoost 提高模型准确性和鲁棒性。两者结合能更好应对非线性和长期依赖的数据,提供更稳定的预测。项目还展示了如何在 MATLAB 中具体实现模型的各个环节。 适用人群:对时间序列预测感兴趣的开发者、研究人员及学生,特别是有一定 MATLAB 编程经验和熟悉深度学习或机器学习基础知识的人群。 使用场景及目标:①适用于金融市场价格预测、气象预报、工业生产故障检测等多种需要时间序列分析的场合;②帮助使用者理解并掌握将LSTM与AdaBoost结合的实现细节及其在提高预测精度和抗噪方面的优势。 其他说明:尽管该模型有诸多优点,但仍存在训练时间长、计算成本高等挑战。文中提及通过优化数据预处理、调整超参数等方式改进性能。同时给出了完整的MATLAB代码实现,便于学习与复现。

    palkert_3ck_01_0918.pdf

    palkert_3ck_01_0918

    pepeljugoski_01_1106.pdf

    pepeljugoski_01_1106

    tatah_01_1107.pdf

    tatah_01_1107

    [AB PLC例程源码][MMS_046393]Motor Speed Reference.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    基于51的步进电机控制系统20250302

    题目:基于单片机的步进电机控制系统 模块: 主控:AT89C52RC 步进电机(ULN2003驱动) 按键(3个) 蓝牙(虚拟终端模拟) 功能: 1、可以通过蓝牙远程控制步进电机转动 2、可以通过按键实现手动与自动控制模式切换。 3、自动模式下,步进电机正转一圈,反转一圈,循环 4、手动模式下可以通过按键控制步进电机转动(顺时针和逆时针)

    [AB PLC例程源码][MMS_041234]Logix Fault Handler.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_042348]Using an Ultra3000 as an Indexer on DeviceNet with a CompactLogix.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    智慧校园平台建设全流程详解:从需求到持续优化

    内容概要:本文详细介绍了建设智慧校园平台所需的六个关键步骤。首先通过需求分析深入了解并确定校方和使用者的具体需求;其次是规划设计阶段,依据所得需求制定全面的建设方案。再者是对现有系统的整合——系统集成,确保新旧平台之间的互操作性和数据一致性。培训支持帮助全校教职工和学生快速熟悉新平台,提高效率。实施试点确保系统逐步稳定部署。最后,强调持续改进的重要性,以适应技术和环境变化。通过这一系列有序的工作,可以使智慧校园建设更为科学高效,减少失败风险。 适用人群:教育领域的决策者和技术人员,包括负责信息化建设和运维的团队成员。 使用场景及目标:用于指导高校和其他各级各类学校规划和发展自身的数字校园生态链;目的是建立更加便捷高效的现代化管理模式和服务机制。 其他说明:智慧校园不仅仅是简单的IT设施升级或软件安装,它涉及到全校范围内的流程再造和创新改革。

    AI淘金实战手册:100+高收益变现案例解析

    该文档系统梳理了人工智能技术在商业场景中的落地路径,聚焦内容生产、电商运营、智能客服、数据分析等12个高潜力领域,提炼出100个可操作性变现模型。内容涵盖AI工具开发、API服务收费、垂直场景解决方案、数据增值服务等多元商业模式,每个思路均配备应用场景拆解、技术实现路径及收益测算框架。重点呈现低代码工具应用、现有平台流量复用、细分领域自动化改造三类轻量化启动方案,为创业者提供从技术选型到盈利闭环的全流程参考。

    palkert_3ck_02_0719.pdf

    palkert_3ck_02_0719

    2006-2023年 地级市-克鲁格曼专业化指数.zip

    克鲁格曼专业化指数,最初是由Krugman于1991年提出,用于反映地区间产业结构的差异,也被用来衡量两个地区间的专业化水平,因而又称地区间专业化指数。该指数的计算公式及其含义可以因应用背景和具体需求的不同而有所调整,但核心都是衡量地区间的产业结构差异或专业化程度。 指标 年份、城市、第一产业人数(first_industry1)、第二产业人数(second_industry1)、第三产业人数(third_industry1)、专业化指数(ksi)。

    [AB PLC例程源码][MMS_046305]R2FX.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    精品推荐-通信技术LTE干货资料合集(19份).zip

    精品推荐,通信技术LTE干货资料合集,19份。 LTE PCI网络规划工具.xlsx LTE-S1切换占比专题优化分析报告.docx LTE_TDD问题定位指导书-吞吐量篇.docx LTE三大常见指标优化指导书.xlsx LTE互操作邻区配置核查原则.docx LTE信令流程详解指导书.docx LTE切换问题定位指导一(定位思路和问题现象).docx LTE劣化小区优化指导手册.docx LTE容量优化高负荷小区优化指导书.docx LTE小区搜索过程学习.docx LTE小区级与邻区级切换参数说明.docx LTE差小区处理思路和步骤.docx LTE干扰日常分析介绍.docx LTE异频同频切换.docx LTE弱覆盖问题分析与优化.docx LTE网优电话面试问题-应答技巧.docx LTE网络切换优化.docx LTE高负荷小区容量优化指导书.docx LTE高铁优化之多频组网优化提升“用户感知,网络价值”.docx

    matlab程序代码项目案例:matlab程序代码项目案例matlab中Toolbox中带有的模型预测工具箱.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    pepeljugoski_01_0508.pdf

    pepeljugoski_01_0508

    szczepanek_01_0308.pdf

    szczepanek_01_0308

    oif2007.384.01_IEEE.pdf

    oif2007.384.01_IEEE

    stone_3ck_01_0119.pdf

    stone_3ck_01_0119

    oganessyan_01_1107.pdf

    oganessyan_01_1107

Global site tag (gtag.js) - Google Analytics