CN117851514A - 一种跨多个Hive集群实现数据和任务容灾方法及系统 - Google Patents
一种跨多个Hive集群实现数据和任务容灾方法及系统 Download PDFInfo
- Publication number
- CN117851514A CN117851514A CN202311722344.9A CN202311722344A CN117851514A CN 117851514 A CN117851514 A CN 117851514A CN 202311722344 A CN202311722344 A CN 202311722344A CN 117851514 A CN117851514 A CN 117851514A
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- cluster1
- cluster2
- hive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 230000002159 abnormal effect Effects 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 16
- 230000036541 health Effects 0.000 claims description 9
- 238000003672 processing method Methods 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 8
- 238000005192 partition Methods 0.000 claims description 7
- 230000008439 repair process Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 241000287219 Serinus canaria Species 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000010076 replication Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于大数据应用领域,本发明公开了一种跨多个Hive集群实现数据和任务容灾方法及系统,包括步骤:获取Hadoop集群A与Hadoop集群B的kerberos认证跨域互信;获取Hadoop集群A地集群数据与Hadoop集群B地集群数据,相互复制和同步;当二者数据发生丢失损坏,在二者之间调度与修复,相较于单h ive集群,做到客户无感知的数据、存算任务的容灾,保证业务连续性,规避区域性灾难等对企业数据、业务的破坏,大大提高了集群的可用性和可靠性,以减少或者规避其业务中断、数据丢失可能带来的影响和损失。
Description
技术领域
本发明涉及大数据应用领域,更具体地说,本发明涉及一种跨多个Hive集群实现数据和任务容灾方法及系统。
背景技术
目前,大数据有4个特点,分别为:Volume(大量)、Variety(多样)、Velocity(高速)、Value(价值),一般称之为4V;
在大数据离线数据/批数据存储计算中,hive承担着非常重要的角色,可以说批处理场景/数仓建设基本离不开hive,Hive数仓中往往也存储着海量数据。
此外,对IT企业来说,传统的单数据中心,已不足以保护企业数据的安全;当单数据中心存储故障后,可能会导致业务长时间中断,甚至数据丢失;只做本地的数据冗余保护或容灾建设,已不能规避区域性灾难对企业数据的破坏,远程容灾保护数据及保障企业业务连续性成为了企业亟待解决的问题;因此,针对跨IDC/跨地域/跨数据中心的hive集群数据容灾/同步、存算任务的连续性等需求,显得尤为迫切和重要。
发明内容
为了克服现有技术的上述缺陷,本发明提供一种跨多个Hive集群实现数据和任务容灾方法,包括步骤:步骤一、获取Hadoop集群A与Hadoop集群B的kerberos认证,并跨域互信;步骤二、获取Hadoop集群A地集群数据与Hadoop集群B地集群数据,相互复制和同步;步骤三、Hadoop集群A地集群数据丢失损坏,接收Hadoop集群B地集群数据调度,Hadoop集群B地集群数据丢失损坏,接收Hadoop集群A地集群数据调度;步骤四、Hadoop集群A地集群数据丢失损坏,接收Hadoop集群B地集群数据修复Hadoop集群A地集群数据,Hadoop集群B地集群数据丢失损坏,接收Hadoop集群A地集群数据修复Hadoop集群B地集群数据。
优选地,所述Hadoop集群A集群数据与Hadoop集群B集群数据同步方法包括步骤:
S100、跨IDC/地城的hive集群的元数据库(mysql)所在服务器磁盘做raid1/raid10;
S101、配置Hadoop集群A与Hadoop集群B的Kerberos认证跨域互信,租户等信息同步;
S102、获取集群健康状态serverState;
S103、利用canal工具进行两个hive集群元数据库mysql里hive元数据实时同步;
S104、hive元数据同步结果校验,若校验异常,则生成异常告警并返回S103,若校验正常前往S105;
S105、利用distcp脚本工具进行HDFS数据同步;
S106、HDFS同步结果数据一致性校验,若校验异常,则生成异常告警并返回S105,若校验正常前往S107;
S107、两个hive集群数据同步完成。
优选地,所述hive元数据同步结果校验方法包括:
分别Hadoop集群A与Hadoop集群B的表结构和元数据、数据库对象、表数据统计信息、分区信息和Hive配置信息,并比对它们的一致性;
若一致则判定正常;
若不一致则生成异常告警。
优选地,所述HDFS同步结果数据一致性校验方法为:分别获取Hadoop集群A与Hadoop集群B的文件列表及文件内容;
比对Hadoop集群A与Hadoop集群B的文件列表,获取源HDFS和目标HDFS上的文件列表,包括文件路径、文件大小、修改时间信息,通过比对两个集群上的文件列表,确保文件在源和目标之间的一致性;
比对Hadoop集群A与Hadoop集群B文件内容的哈希值,若Hadoop集群A与Hadoop集群B文件内容的哈希值相同,则文件内容一致,若Hadoop集群A与Hadoop集群B文件内容的哈希值不相同,则文件内容不一致。
优选地,所述Hadoop集群A与Hadoop集群B故障的监测方法包括步骤:
分别获取Hadoop集群A与Hadoop集群B的serverState的值,Hadoop集群A标记为cluster1,Hadoop集群B标记为cluster2,cluster1作为主数据服务,正常情况下均由其提供服务;
serverState=0代表cluster1和cluster2均正常服务;
serverState=1代表只有cluster1故障;
serverState=2代表只有cluster2故障;
serverState=3代表cluster1和cluster2均故障。
优选地,cluster1故障,cluster2正常时,处理方法为:
当cluster2的serverState的值等于0,数据灾备方向为cluster1->cluster2,Hadoop集群A与Hadoop集群B的hive元数据实时同步,包括:
周期T触发增量是库表数据同步;
存算调度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步,其中M为cluster1和cluster2间网络带宽S乘以4小时的值;
当cluster2的serverState的值等于1,数据灾备方向为cluster1->cluster2,Hadoop集群A与Hadoop集群B的hive元数据实时同步。
优选地,cluster1由故障恢复正常,cluster2一直正常时,数据灾备方向为cluster2->cluster1,处理方法分为根据cluster1元数库故障执行以及利用canal执行cluster1和cluster2的hive元数据同步;
S200、若cluster1元数库正常直接前往S201,若cluster1元数库故障,获取当前时刻cluster1和cluster2元数据库mysq的BinLog里最新一条数据的时间戳,按照时间戳提取cluster2在duster1故障期间的元数据历史变化,在cluster1上执行同步;
S201、利用hive的元数据/mysql的binlog,解析出cluster1故障至恢复期间,hive库表数据的增量信息;
S202、利用distcp脚本,将增量信息同步至cluster1;
S203、数据一致性校验,若不通过返回S202循环,若通过前往S206;
S204、利用canal执行cluster1和cluster2的hive元数据同步分为:
周期T触发增库表数据同步;
存算周度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步;
S205、数据一致性校验,若不通过返回S204循环,若通过前往S206执行;
S206、cluster1故障开始时刻及恢复时刻内,数据一致性校验;
S207、校验通过,集群服务可由cluster2切换到cluster1,校验不通过则返回S205或S203循环。
优选地,cluster1一直正常,cluster2由故障恢复正常时,数据灾备方向为cluster1->cluster2,处理方法分为根据cluster2元数库故障执行以及利用canal执行cluster1和cluster2的hive元数据同步;
S300、若cluster1元数库正常直接前往S301,若cluster2元数库故障,获取当前时刻cluster1和cluster2元数据库mysq的BinLog里最新一条数据的时间戳,按照时间戳提取cluster1在duster2故障期间的元数据历史变化,在cluster2上执行同步;
S301、利用hive的元数据/mysql的binlog,解析出cluster2故障至恢复期间,hive库表数据的增量信息;
S302、利用distcp脚本,将增量信息同步至cluster2;
S303、数据一致性校验,若不通过返回S302循环,若通过前往S306;
S304、利用canal执行cluster1和cluster2的hive元数据同步分为:
周期T触发增库表数据同步;
存算周度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步;
S305、数据一致性校验,若不通过返回S304循环,若通过前往S306执行;
S306、cluster2故障开始时刻及恢复时刻内,数据一致性校验,校验通过则结束,校验不通过则返回S305或S303循环。
一种跨多个Hive集群实现数据和任务容灾系统,用于实现上述的一种跨多个Hive集群实现数据和任务容灾方法,包括集群监控Listener模块和统一代理proxy模块,部署在cluster1和cluster2之外的具备HA、安全的云上;
集群监控Listener模块,以T时间为周期,发送测试脚本,遍历测试cluster1和cluster2的元数据库、hive数据库、hdfs集群,获得两个集群健康状态以及serverState,T为大于等于1的整数;
若探测到cluster1或cluster2故障,进行数据灾备,更改为统一代理proxy模块进行任务调度集群的更换。
优选地,所述集群监控Listener模块探测到1/3的DataNode节点故障,则进行cluster1与cluster2切换,相应的进行数据容灾和任务调度的切换;
针对cluster1或cluster2故障,集群监控Listener模块按照T=T+K*探测结果返回时间,其中,K是(0,1)间的一个常量,T≤1h,递增的故障周期进行集群健康状态探测;如若cluster1或cluster2恢复正常,则T置为初始化值。
本发明一种跨多个Hive集群实现数据和任务容灾方法及系统的技术效果和优点:
相较于单hive集群,做到客户无感知的数据、存算任务的容灾,保证业务连续性,规避区域性灾难等对企业数据、业务的破坏,大大提高了集群的可用性和可靠性,以减少或者规避其业务中断、数据丢失可能带来的影响和损失。
附图说明
图1为本发明异地hive集群数据容灾整体示意图;
图2为本发明集群间数据同步整体流程图;
图3为本发明存算等任务连续性保障整体流程图;
图4为本发明集群数据灾备及恢复机制示意图;
图5为本发明主集群故障恢复流程示意图;
图6为本发明备集群故障恢复流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了如图1-6所示的一种跨多个Hive集群实现数据和任务容灾方法,本实施例以2个异地hive集群数据容灾/同步为例来阐述,分为Hadoop集群A与Hadoop集群B,Hadoop集群A与Hadoop集群B的架构一直,参阅图1所示,以Hadoop集群A为例,Hive元数据库MySQL采用主从分布架构(可一主多从),即Hadoop集群A和Hadoop集群B,mysql-master和mysql-slave所在服务器在同IDC内异机柜分布,且对应的服务器磁盘做raid0/raid10,以保证单数据中心内hive元数据的容灾和高可用性;
Hive所依赖的Hdfs集群采用HA架构,Hadoop集群A与Hadoop集群B之间采用网络专线,具体带宽大小看实际需求,配置Hadoop集群A与Hadoop集群B的kerberos认证跨域互信;
获取Hadoop集群A地集群数据与Hadoop集群B地集群数据,相互复制和同步,使用数据复制工具,例如Apache Kafka、Apache NiFi或自定义脚本,实现Hadoop集群A地集群数据与Hadoop集群B地集群数据之间的数据复制和同步,保持数据一致性;
若Hadoop集群A地集群数据丢失损坏,接收Hadoop集群B地集群数据调度,若Hadoop集群B地集群数据丢失损坏,接收Hadoop集群A地集群数据调度;任务调度使用分布式任务调度系统,例如Apache Airflow来管理和调度任务,确保任务在Hadoop集群A与Hadoop集群B之间进行容灾切换;
若Hadoop集群A地集群数据丢失损坏,接收Hadoop集群B地集群数据修复Hadoop集群A地集群数据,Hadoop集群B地集群数据丢失损坏,接收Hadoop集群A地集群数据修复Hadoop集群B地集群数据。
参阅图2所示,Hadoop集群A集群数据与Hadoop集群B集群数据同步方法包括步骤:
S100、跨IDC/地城的hive集群的元数据库(mysql)所在服务器磁盘做raid1/raid10,raid1提供了数据镜像,将数据同时写入多个磁盘,以提高数据的冗余性和读取性能,raid10则是将多个磁盘进行镜像和条带化,提供了更高的冗余性和更好的读写性能;
S101、配置Hadoop集群A与Hadoop集群B的Kerberos认证跨域互信,租户等相关信息同步,即Hadoop集群A与Hadoop集群B相互认证和信任,使得跨域的用户可以在Hadoop集群A与Hadoop集群B之间进行访问和操作;
S102、获取集群健康状态serverState;
S103、利用canal工具进行两个hive集群元数据库mysql里hive元数据实时同步,canal是一个开源的MySQL数据库binlog解析工具,用于解析MySQL的binlog日志,并将数据变更实时同步到其他目标数据库,通过配置Canal工具,将集群A的Hive元数据变更实时同步到集群B的Hive元数据库,确保两个集群的元数据保持一致;
S104、hive元数据同步结果校验,若校验异常,则生成异常告警并返回S103,若校验正常前往S105;
S105、利用distcp脚本工具进行HDFS数据同步,使用distcp脚本实现Hadoop集群A与Hadoop集群B之间的HDFS数据同步,distcp是Hadoop提供的一个用于分布式复制数据的工具,它能够在不同的Hadoop集群之间复制数据,并保持数据的一致性,通过配置相应的参数和路径,可以将Hadoop集群A中的数据复制到Hadoop集群B中,实现数据的同步;
S106、HDFS同步结果数据一致性校验,若校验异常,则生成异常告警并返回S105,若校验正常前往S107;
S107、两个hive集群数据同步完成。
进一步的,hive元数据同步结果校验方法包括:分别Hadoop集群A与Hadoop集群B的表结构和元数据、数据库对象、表数据统计信息、分区信息和Hive配置信息,并比对它们的一致性;若一致则判定正常;若不一致则生成异常告警。
更进一步的,HDFS同步结果数据一致性校验方法包括:文件列表比对:获取源HDFS和目标HDFS上的文件列表,包括文件路径、文件大小、修改时间等信息。通过比对两个集群上的文件列表,确保文件在源和目标之间的一致性;文件内容比对:选择一些代表性文件或样本文件,在源HDFS和目标HDFS上分别获取它们的内容,并进行内容对比。这可以通过计算文件的哈希值(如MD5、SHA1)来实现,如果文件内容一致,哈希值相同,否则表示数据同步存在问题,具体比对校验还包括目录结构比对,获取源HDFS和目标HDFS上的目录结构,包括目录名称、子目录和文件的层次结构,通过比对两个集群上的目录结构,确保目录的层次和结构在源和目标之间一致;文件权限和属性比对,获取源HDFS和目标HDFS上文件的权限、所有者、修改时间、访问时间等属性,并进行比对,确保文件的权限和属性在源和目标之间保持一致;日志和报告,记录比对过程中的错误、差异和异常情况,并生成相应的日志和报告,以便进一步分析和修复;具体比对项由本领域技术人员根据实际需求配置。
参阅图3所示,Hadoop集群A与Hadoop集群B故障的监测方法包括步骤:分别获取Hadoop集群A与Hadoop集群B的serverState的值,Hadoop集群A标记为cluster1,Hadoop集群B标记为cluster2,cluster1作为主数据服务,正常情况下均由其提供服务;
serverState=0代表cluster1和cluster2均正常服务;
serverState=1代表只有cluster1故障;
serverState=2代表只有cluster2故障;
serverState=3代表cluster1和cluster2均故障;
通过对serverState的值的监测,可以清楚的判定Hadoop集群A与Hadoop集群B故障,以统一代理形式对外提供服务,统一代理根据serverState的值,在客户无感知的情况下,拼接集群访问地址,定向实际执行存算任务的集群,相较于单hive集群,大大提升访问所需执行业务及任务的连续性、可用性及可靠性。
参阅图4所示,当主集群故障,即cluster1故障,备集群正常,即cluster2正常时,处理方法为:当cluster2的serverState的值等于0,数据灾备方向为cluster1->cluster2,Hadoop集群A与Hadoop集群B的hive元数据实时同步,包括:周期T触发增量是库表数据(Hdfs增量文件)同步;存算调度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步,M的大小本领域人员可根据业务及灾备需求设定,在本实施例中M为cluster1和cluster2间网络带宽S乘以4小时的值,下述M统一采用;当cluster2的serverState的值等于1,数据灾备方向为cluster1->cluster2,Hadoop集群A与Hadoop集群B的hive元数据实时同步。
进一步的,参阅图5所示,当cluster1由故障恢复正常,cluster2一直正常时,数据灾备方向为cluster2->cluster1,处理方法分为根据cluster1元数库故障执行以及利用canal执行cluster1和cluster2的hive元数据同步;
S200、若cluster1元数库正常直接前往S201,若cluster1元数库故障,获取当前时刻cluster1和cluster2元数据库mysq的BinLog里最新一条数据的时间戳,按照时间戳提取cluster2在duster1故障期间的元数据历史变化,在cluster1上执行同步;
S201、利用hive的元数据/mysql的binlog,解析出cluster1故障至恢复期间,hive库表数据的增量信息;
S202、利用distcp脚本,将增量信息同步至cluster1;
S203、数据一致性校验,若不通过返回S202循环,若通过前往S206(库表分区、文件大小、数据记录数等);
S204、利用canal执行cluster1和cluster2的hive元数据同步分为:
周期T触发增库表数据(Hdf增量文件)同步;
存算周度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步;
S205、数据一致性校验(库表分区、文件大小、数记录数等),若不通过返回S204循环,若通过前往S206执行;
S206、cluster1故障开始时刻及恢复时刻内,数据一致性校验;
S207、校验通过,集群服务可由cluster2切换到cluster1,校验不通过则返回S205或S203循环。
更进一步的,参阅图6所示,若cluster1一直正常,cluster2由故障恢复正常时,数据灾备方向为cluster1->cluster2,处理方法分为根据cluster2元数库故障执行以及利用canal执行cluster1和cluster2的hive元数据同步;
S300、若cluster1元数库正常直接前往S301,若cluster2元数库故障,获取当前时刻cluster1和cluster2元数据库mysq的BinLog里最新一条数据的时间戳,按照时间戳提取cluster1在duster2故障期间的元数据历史变化,在cluster2上执行同步;
S301、利用hive的元数据/mysql的binlog,解析出cluster2故障至恢复期间,hive库表数据的增量信息;
S302、利用distcp脚本,将增量信息同步至cluster2;
S303、数据一致性校验,若不通过返回S302循环,若通过前往S306(库表分区、文件大小、数据记录数等);
S304、利用canal执行cluster1和cluster2的hive元数据同步分为:
周期T触发增库表数据(Hdf增量文件)同步;
存算周度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步;
S305、数据一致性校验(库表分区、文件大小、数记录数等),若不通过返回S304循环,若通过前往S306执行;
S306、cluster2故障开始时刻及恢复时刻内,数据一致性校验,校验通过则结束,校验不通过则返回S305或S303循环。
一种跨多个Hive集群实现数据和任务容灾系统,用于实现上述一种跨多个Hive集群实现数据和任务容灾方法,包括集群监控Listener模块和统一代理proxy模块,部署在cluster1和cluster2之外的具备HA、安全的云上;
集群监控Listener模块,以T时间为周期(本实施例按照分钟级故障感知,初始T设定为1分钟),发送测试脚本,遍历测试cluster1和cluster2的元数据库、hive数据库、hdfs集群,获得两个集群健康状态以及serverState,T为大于等于1的整数;
若探测到cluster1或cluster2故障,进行数据灾备,即按图5与图6所示流程处理,并且更改统一代理proxy模块进行任务调度集群的更换;
已知hive所依赖的hdfs集群中datanode的部署采用机架感知,以保证至少有一个副本节点在不同机柜上,集群监控Listener模块探测到1/3的DataNode节点故障,则进行cluster1与cluster2切换,相应的进行数据容灾和任务调度的切换;
针对cluster1或cluster2故障,集群监控Listener模块按照T=T+K*探测结果返回时间,其中,K是(0,1)间的一个常量,T≤1h,递增的故障周期进行集群健康状态探测;如若cluster1或cluster2恢复正常,则T置为初始化值,即本实施例设定的1分钟。
值得一提的是,当互为灾备的cluster数量大于2个时,即cluster1和cluster2之外还有clusterN,则当主集群发生故障及故障恢复时,可采用选举机制,选出各个集群中元数据最多最新和hdfs文件数据最多的集群作为主集群和参照集群进行任务调度和数据恢复。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,包括步骤:
步骤一、获取Hadoop集群A与Hadoop集群B的kerberos认证,并跨域互信;
步骤二、获取Hadoop集群A地集群数据与Hadoop集群B地集群数据,相互复制和同步;使用数据复制工具实现A、B两地集群之间的数据复制和同步,保持数据一致性
步骤三、Hadoop集群A地集群数据丢失损坏,接收Hadoop集群B地集群数据调度,Hadoop集群B地集群数据丢失损坏,接收Hadoop集群A地集群数据调度;任务调度:使用分布式任务调度系统来管理和调度任务,确保任务在A、B两地集群之间进行容灾切换。
步骤四、Hadoop集群A地集群数据丢失损坏,接收Hadoop集群B地集群数据修复Hadoop集群A地集群数据,Hadoop集群B地集群数据丢失损坏,接收Hadoop集群A地集群数据修复Hadoop集群B地集群数据;故障切换:配置故障切换机制,当A集群发生故障时,自动切换到B集群执行任务,并及时恢复数据同步。
2.根据权利要求1所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,所述Hadoop集群A集群数据与Hadoop集群B集群数据同步方法包括步骤:
S100、跨IDC/地城的hive集群的元数据库所在服务器磁盘做raid1/raid10;
S101、配置Hadoop集群A与Hadoop集群B的Kerberos认证跨域互信,租户信息同步;
S102、获取集群健康状态serverState;
S103、利用canal工具进行两个hive集群元数据库mysql里hive元数据实时同步;
S104、hive元数据同步结果校验,若校验异常,则生成异常告警并返回S103,若校验正常前往S105;
S105、利用distcp脚本工具进行HDFS数据同步;
S106、HDFS同步结果数据一致性校验,若校验异常,则生成异常告警并返回S105,若校验正常前往S107;
S107、两个hive集群数据同步完成。
3.根据权利要求2所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,所述hive元数据同步结果校验方法包括:
分别获取Hadoop集群A与Hadoop集群B的表结构和元数据、数据库对象、表数据统计信息、分区信息和Hive配置信息,并比对它们的一致性;
若一致则判定正常;
若不一致则生成异常告警。
4.根据权利要求2所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,所述HDFS同步结果数据一致性校验方法为:分别获取Hadoop集群A与Hadoop集群B的文件列表及文件内容;
比对Hadoop集群A与Hadoop集群B的文件列表,获取源HDFS和目标HDFS上的文件列表,包括文件路径、文件大小、修改时间信息,通过比对两个集群上的文件列表,确保文件在源和目标之间的一致性;
比对Hadoop集群A与Hadoop集群B文件内容的哈希值,若Hadoop集群A与Hadoop集群B文件内容的哈希值相同,则文件内容一致,若Hadoop集群A与Hadoop集群B文件内容的哈希值不相同,则文件内容不一致。
5.根据权利要求2所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,所述Hadoop集群A与Hadoop集群B故障的监测方法包括步骤:
分别获取Hadoop集群A与Hadoop集群B的serverState的值,Hadoop集群A标记为cluster1,Hadoop集群B标记为cluster2,cluster1作为主数据服务,正常情况下均由其提供服务;
serverState=0代表cluster1和cluster2均正常服务;
serverState=1代表只有cluster1故障;
serverState=2代表只有cluster2故障;
serverState=3代表cluster1和cluster2均故障。
6.根据权利要求3所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,cluster1故障,cluster2正常时,处理方法为:
当cluster2的serverState的值等于0,数据灾备方向为cluster1->cluster2,Hadoop集群A与Hadoop集群B的hive元数据实时同步,包括:
周期T触发增量是库表数据同步;
存算调度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步,其中M为cluster1和cluster2间网络带宽S乘以4小时的值;
当cluster2的serverState的值等于1,数据灾备方向为cluster1->cluster2,Hadoop集群A与Hadoop集群B的hive元数据实时同步。
7.根据权利要求6所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,cluster1由故障恢复正常,cluster2一直正常时,数据灾备方向为cluster2->cluster1,处理方法分为根据cluster1元数库故障执行以及利用canal执行cluster1和cluster2的hive元数据同步;
S200、若cluster1元数库正常直接前往S201,若cluster1元数库故障,获取当前时刻cluster1和cluster2元数据库mysq的BinLog里最新一条数据的时间戳,按照时间戳提取cluster2在duster1故障期间的元数据历史变化,在cluster1上执行同步;
S201、利用hive的元数据/mysql的binlog,解析出cluster1故障至恢复期间,hive库表数据的增量信息;
S202、利用distcp脚本,将增量信息同步至cluster1;
S203、数据一致性校验,若不通过返回S202循环,若通过前往S206;
S204、利用canal执行cluster1和cluster2的hive元数据同步分为:
周期T触发增库表数据同步;
存算周度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步;
S205、数据一致性校验,若不通过返回S204循环,若通过前往S206执行;
S206、cluster1故障开始时刻及恢复时刻内,数据一致性校验;
S207、校验通过,集群服务可由cluster2切换到cluster1,校验不通过则返回S205或S203循环。
8.根据权利要求6所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,cluster1一直正常,cluster2由故障恢复正常时,数据灾备方向为cluster1->cluster2,处理方法分为根据cluster2元数库故障执行以及利用canal执行cluster1和cluster2的hive元数据同步;
S300、若cluster1元数库正常直接前往S301,若cluster2元数库故障,获取当前时刻cluster1和cluster2元数据库mysq的BinLog里最新一条数据的时间戳,按照时间戳提取cluster1在duster2故障期间的元数据历史变化,在cluster2上执行同步;
S301、利用hive的元数据/mysql的binlog,解析出cluster2故障至恢复期间,hive库表数据的增量信息;
S302、利用distcp脚本,将增量信息同步至cluster2;
S303、数据一致性校验,若不通过返回S302循环,若通过前往S306;
S304、利用canal执行cluster1和cluster2的hive元数据同步分为:
周期T触发增库表数据同步;
存算周度任务执行完触发,当增量库表数据大于M时,执行Hdfs增量文件同步;
S305、数据一致性校验,若不通过返回S304循环,若通过前往S306执行;
S306、cluster2故障开始时刻及恢复时刻内,数据一致性校验,校验通过则结束,校验不通过则返回S305或S303循环。
9.一种跨多个Hive集群实现数据和任务容灾系统,用于实现权利要求1-8任一项所述的一种跨多个Hive集群实现数据和任务容灾方法,其特征在于,包括集群监控Listener模块和统一代理proxy模块,部署在cluster1和cluster2之外的具备HA、安全的云上;
集群监控Listener模块,以T时间为周期,发送测试脚本,遍历测试cluster1和cluster2的元数据库、hive数据库、hdfs集群,获得两个集群健康状态以及serverState,T为大于等于1的整数;
若探测到cluster1或cluster2故障,进行数据灾备,更改为统一代理proxy模块进行任务调度集群的更换。
10.根据权利要求9所述的一种跨多个Hive集群实现数据和任务容灾系统,其特征在于,所述集群监控Listener模块探测到1/3的DataNode节点故障,则进行cluster1与cluster2切换,相应的进行数据容灾和任务调度的切换;
针对cluster1或cluster2故障,集群监控Listener模块按照T=T+K*探测结果返回时间,其中,K是(0,1)间的一个常量,T≤1h,递增的故障周期进行集群健康状态探测;如若cluster1或cluster2恢复正常,则T置为初始化值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722344.9A CN117851514A (zh) | 2023-12-14 | 2023-12-14 | 一种跨多个Hive集群实现数据和任务容灾方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722344.9A CN117851514A (zh) | 2023-12-14 | 2023-12-14 | 一种跨多个Hive集群实现数据和任务容灾方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851514A true CN117851514A (zh) | 2024-04-09 |
Family
ID=90546923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311722344.9A Pending CN117851514A (zh) | 2023-12-14 | 2023-12-14 | 一种跨多个Hive集群实现数据和任务容灾方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851514A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118410094A (zh) * | 2024-07-01 | 2024-07-30 | 北京科杰科技有限公司 | 一种网络化的Hive表数据加载方法 |
-
2023
- 2023-12-14 CN CN202311722344.9A patent/CN117851514A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118410094A (zh) * | 2024-07-01 | 2024-07-30 | 北京科杰科技有限公司 | 一种网络化的Hive表数据加载方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9904605B2 (en) | System and method for enhancing availability of a distributed object storage system during a partial database outage | |
US7702667B2 (en) | Methods and systems for validating accessibility and currency of replicated data | |
US7657796B1 (en) | System and method for distributed storage verification | |
EP1522926B1 (en) | Systems and methods for backing up data files | |
CA2853465C (en) | Split brain resistant failover in high availability clusters | |
EP2619695B1 (en) | System and method for managing integrity in a distributed database | |
CN106933843B (zh) | 数据库心跳检测方法以及装置 | |
US20080222296A1 (en) | Distributed server architecture | |
CN104424283A (zh) | 一种数据迁移的系统和数据迁移的方法 | |
CN117851514A (zh) | 一种跨多个Hive集群实现数据和任务容灾方法及系统 | |
CN108810150B (zh) | 协同办公系统应用级灾备系统的数据复制方法 | |
CN103597463A (zh) | 恢复服务的自动配置 | |
CN102170460A (zh) | 一种集群存储系统及其数据存储方法 | |
CN106850315B (zh) | 一种自动化容灾系统 | |
CN113688035B (zh) | 一种基于沙箱环境的数据库双活中心验证方法及系统 | |
CN108600284B (zh) | 一种基于Ceph的虚拟机高可用实现方法及系统 | |
US20200133527A1 (en) | Versioning a configuration of data storage equipment | |
CN109308227A (zh) | 故障检测控制方法及相关设备 | |
WO2017014814A1 (en) | Replicating memory volumes | |
CN116389233B (zh) | 容器云管理平台主备切换系统、方法、装置和计算机设备 | |
US20200401312A1 (en) | Object Storage System with Meta Object Replication | |
CN114301763B (zh) | 分布式集群故障的处理方法及系统、电子设备及存储介质 | |
CN112256201B (zh) | 一种分布式块存储系统及其卷信息管理方法 | |
Verkuil | A comparison of fault-tolerant cloud storage file systems | |
US11745036B2 (en) | Fire protection system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |