CN113704355A - 数据同步方法、电子设备及存储介质 - Google Patents

数据同步方法、电子设备及存储介质 Download PDF

Info

Publication number
CN113704355A
CN113704355A CN202111013823.4A CN202111013823A CN113704355A CN 113704355 A CN113704355 A CN 113704355A CN 202111013823 A CN202111013823 A CN 202111013823A CN 113704355 A CN113704355 A CN 113704355A
Authority
CN
China
Prior art keywords
task
data
synchronization
flinkx
data synchronization
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
Application number
CN202111013823.4A
Other languages
English (en)
Inventor
赵小雄
林攀学
翟智强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202111013823.4A priority Critical patent/CN113704355A/zh
Publication of CN113704355A publication Critical patent/CN113704355A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据同步方法、电子设备及存储介质,应用于分布式系统中的第一节点的数据同步方法包括:通过设定调度器获取待调度的第一数据同步任务;在所述设定调度器调度所述第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务,并向所述分布式系统中的至少一个第二节点下发所述第一任务。

Description

数据同步方法、电子设备及存储介质
技术领域
本发明涉及通信领域,尤其涉及一种数据同步方法、电子设备及存储介质。
背景技术
相关技术中,分布式系统通过自带的任务调度框架或第三方任务调度框架进行任务调度,但在调度任务时,任务调度效率较低。例如,分布式系统在通过海豚调度器(ApacheDolphinScheduler)调度数据同步任务时,因海豚调度器的数据同步功能仅支持端到端的数据同步,导致分布式系统的任务调度效率较低。
发明内容
有鉴于此,本发明实施例提供一种数据同步方法、电子设备及存储介质,以解决现有技术中,在分布式系统中任务调度效率低的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本申请实施例提供了一种数据同步方法,应用于分布式系统中的第一节点,所述方法包括:
通过设定调度器获取待调度的第一数据同步任务;
在所述设定调度器调度所述第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务,并向所述分布式系统中的至少一个第二节点下发所述第一任务。
上述方案中,所述将所述第一数据同步任务配置为支持FlinkX执行的第一任务,包括:
基于所述第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一任务。
上述方案中,所述配置信息包括数据源的配置信息、数据目的地的配置信息、系统参数和任务运行参数。
上述方案中,所述基于所述第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一任务,包括:
按照FlinkX支持的JSON数据格式,对所述第一数据同步任务的配置信息进行处理,得到第一任务。
本申请实施例还提供了一种数据同步方法,应用于分布式系统中的第二节点,所述方法包括:
接收第一节点下发的第一任务;其中,所述第一任务由所述第一节点在通过设定调度器调度对应的第一数据同步任务的过程中生成;所述第一任务表征由FlinkX执行的所述第一数据同步任务;
调用FlinkX执行所述第一任务。
上述方案中,所述第一任务携带所述第一数据同步任务的配置信息,所述调用FlinkX执行所述第一任务,包括:
通过所述设定调度器基于所述配置信息生成任务描述文件;
通过所述设定调度器调用FlinkX,基于所述任务描述文件执行所述第一任务。
上述方案中,在所述接收第一节点下发的第一任务之后,所述方法还包括:
将所述第一任务的日志从YARN重定向至FlinkX。
上述方案中,所述调用FlinkX执行所述第一任务,包括:
在所述第一任务为增量同步任务的情况下,基于所述第一任务对应的数据源中最新的同步位置和数据目的地中的最新数据,进行增量同步。
上述方案中,所述基于所述第一任务对应的数据源中最新的同步位置和数据目的地中的最新数据,进行增量同步,包括:
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据相同的情况下,对所述数据源中位于最新的同步位置之后的数据进行增量同步;或者
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据不同的情况下,从所述数据源中确定出与所述最新数据匹配的目标数据,对位于所述目标数据之后的数据进行增量同步。
本申请实施例还提供了一种电子设备,包括:
获取单元,用于通过设定调度器获取待调度的第一数据同步任务;
生成单元,用于在所述设定调度器调度所述第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务
发送单元,用于向所述分布式系统中的至少一个第二节点下发所述第一任务。
本申请实施例还提供了一种电子设备,包括:
接收单元,用于接收第一节点下发的第一任务;其中,所述第一任务由所述第一节点在通过设定调度器调度对应的第一数据同步任务的过程中生成;所述第一任务表征由FlinkX执行的所述第一数据同步任务;
执行单元,用于调用FlinkX执行所述第一任务。
本申请实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行上述应用于分布式系统中的第一节点或第二节点的数据同步方法的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述应用于分布式系统中的第一节点或第二节点的数据同步方法的步骤。
本申请实施例中,分布式系统中的第一节点在通过设定调度器调度第一数据同步任务的过程中,将第一数据同步任务配置为支持FlinkX执行的第一任务,并向分布式系统中的至少一个第二节点下发第一任务,分布式系统中的第二节点接收第一节点下发的第一任务,以便分布式系统中的第二节点调用FlinkX执行第一任务,第一任务表征由FlinkX执行的第一数据同步任务。这样,第一节点可以并行调度数据同步任务,分布式系统中不同的第二节点可以并行调用FlinkX执行通过设定调度器调度的数据同步任务,可实现多端数据同步,提高了数据同步效率。由于FlinkX支持增量同步和断点续传,因此,调用FlinkX执行第一任务,还可以提高第一任务的可靠性和灵活性。
附图说明
图1为本申请实施例提供的数据同步方法的交互图;
图2为本申请应用实施例提供的数据同步方法的示意图;
图3为本申请应用实施例提供的FlinkxTask实例的示意图;
图4为本申请实施例提供的电子设备的结构示意图;
图5为本申请另一实施例提供的电子设备的结构示意图;
图6为本申请实施例提供的电子设备的组成结构示意图。
具体实施方式
相关技术中,任务调度框架主要包括海豚调度器、Azkaban、Ooize等。通过对比发现海豚调度器具有以下优点:
1、高可靠性:去中心化的多master与多worker,采用任务队列来避免过载,不会造成机器的卡死;调度能力随着集群线性增长,且master与worker支持动态上下线;其中,master用于向worker下发任务并获取任务执行结果,worker用于执行任务;
2、简单易用:有向无环图(DAG,Direct Acyclic Graph)监控界面可视化,通过拖拽定制DAG调度任务;
3、工作流任务可支持自定义参数,支持Shell、MR、Spark、SQL等十多种任务类型,支持任务优先级的设置;
4、工作流任务可支持定时、依赖、手动、暂停、恢复、停止等操作。
海豚调度器因具有以上优点而被应用于分布式系统,但是海豚调度器的数据同步功能仅支持端到端的数据同步,不支持多端数据同步,任务调度效率较低。
基于此,在本申请的各种实施例中,分布式系统中的第一节点在通过设定调度器调度第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务,并向分布式系统中的至少一个第二节点下发第一任务,以便第二节点调用FlinkX执行第一任务,第一任务表征由FlinkX执行的第一数据同步任务。这样,第一节点可以并行调度数据同步任务,分布式系统中不同的第二节点可以并行调用FlinkX执行通过设定调度器调度的数据同步任务,可实现多端数据同步,提高了数据同步效率。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为本申请实施例提供的数据同步方法的交互图。其中,数据同步方法应用于分布式系统中的第一节点和第二节点,第一节点和第二节点处于同一集群。第一节点运行设定调度器的master进程调度数据同步任务,并向第二节点下发数据同步任务;第二节点运行设定调度器的work进程,执行数据同步任务。如图1示出的,数据同步方法包括:
步骤101:分布式系统中的第一节点通过设定调度器获取待调度的第一数据同步任务。
分布式系统中包括一个第一节点和多个第二节点,当第一节点发生故障时,从第二节点中确定出新的第一节点。
这里,用户通过终端设备登陆分布式系统的前端页面,在前端页面配置数据同步任务,并触发终端设备向分布式系统中的第一节点提交配置的数据同步任务。其中,终端设备提交的数据同步任务包括配置信息。
分布式系统中的第一节点在接收到用户提交的数据同步任务的情况下,对数据同步任务进行校验,以校验数据同步任务中的相关数据是否正确,以及校验是否支持数据同步任务中的数据类型;在对数据同步任务校验通过的情况下,将数据同步任务存储至分布式系统的数据库。在对数据同步任务校验不通过的情况下,丢弃数据同步任务,并向发送该数据同步任务的终端设备发送提示信息,以便用户根据提示信息进行修改。
其中,分布式系统的数据库可以为本地数据库,也可以为云端数据库。
这里,分布式系统中的第一节点运行设定调度器的master进程,从数据库中获取待调度的第一数据同步任务,得到第一数据同步任务。本实施例中的设定调度器是一个分布式去中心化、易扩展、支持可视化管理的任务调度系统,该设定调度器能够以有向无环图的方式将待调度的任务按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态。在实际应用时,设定调度器可以为海豚设定调度器。
这里,运行于分布式系统中的设定调度器可以调度在线的数据同步任务,和/或,离线的数据同步任务。离线的数据同步任务是指定时触发的数据同步任务。实际应用时,设定调度器调度离线的数据同步任务。
实际应用时,在第一数据同步任务为离线的数据同步任务的情况下,第一节点中运行的设定调度器的master进程调用定时任务组件Quartz,通过Quartz从数据库中获取待调度的第一数据同步任务。
步骤102:分布式系统中的第一节点在通过所述设定调度器调度所述第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务,向所述分布式系统中的至少一个第二节点下发所述第一任务。
这里,第一数据同步任务携带第一数据同步任务的配置信息,分布式系统中的第一节点在通过设定调度器调度第一数据同步任务的过程中,基于第一数据同步任务的配置信息,生成支持FlinkX执行的第一任务。
实际应用时,第一节点中运行的设定调度器的master进程,在当前时刻到达第一数据同步任务对应的定时时间的结束时刻的情况下,触发第一数据同步任务,并将第一数据同步任务写入优先级队列;通过设定调度器的master进程中的消费线程,从优先级队列中获取第一数据同步任务,并基于第一数据同步任务携带的第一数据同步任务的配置信息,生成第一数据同步任务对应的第一任务。
需要说明的是,进程是任务调度的最小单位,一个进程可以包括多个线程。
在一些实施例中,配置信息包括:数据源的配置信息、数据目的地的配置信息、系统参数和任务运行参数。
数据源的配置信息包括数据源的连接配置参数和数据源的参数。其中,数据源的连接配置参数包括数据源的地址,还可以包括账户名和密码等。数据源的参数包括:名称、数据类型、字段类型等参数。数据类型包括:MYSQL、HDFS或HBASE。
数据目的地的配置信息包括数据目的地的连接配置参数和数据目的地的参数。其中,数据目的地的连接配置参数包括数据目的地的地址,还可以包括账户名和密码等。数据目的地的参数包括:名称、数据类型、字段类型等参数。
系统参数包括数据同步任务的并发度、传输速度和第一指示中的至少之一;其中,第一指示表征是否为增量同步。
任务运行参数至少包括:超时时间,还可以包括执行第一数据同步任务的设备的标识。
在一些实施例中,所述将所述第一数据同步任务配置为支持FlinkX执行的第一任务,包括:
基于所述第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一任务。这里,FlinkX支持的数据格式中定义了由FlinkX执行的数据同步任务所包括的数据和对应的数据类型或数据结构。分布式系统中的第一节点基于FlinkX支持的数据格式,对第一任务的配置信息进行转换,基于转换后的配置信息生成第一任务。第一任务携带第一数据同步任务的配置信息。其中,Flink支持的数据格式包括JSON(JavaScript ObjectNotation)数据格式,Flink支持Java和Scala中所有常见的数据类型。进一步地,所述基于所述第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一任务,包括:
按照FlinkX支持的JSON数据格式,对所述第一数据同步任务的配置信息进行处理,得到第一任务。
这里,第一节点按照FlinkX支持的JSON数据格式中定义的数据对应数据类型和数据结构,对第一数据同步任务的配置信息进行处理,得到第一数据同步任务对应的第一任务。其中,
数据类型包括:字符串(string)、数字(number)、对象(object)、数组(array)、布尔(Boolean)、对空(null)等。布尔逻辑的值包括true或false。
数据结构包括:对象结构和数组结构;一个对象是一组名称和值对;数组是一组值。
实际应用时,第一节点通过设定调度器的master进程中的消费线程,基于FlinkX支持的数据格式对第一数据同步任务的配置信息进行序列化,生成执行上下文;基于执行上下文生成第一数据同步任务对应的第一任务。
本实施例中,基于第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一数据同步任务对应的第一任务,以便FlinkX能够识别出第一任务,由此,接收到第一任务的第二节点可以调用FlinkX执行第一数据同步任务。
步骤103:分布式系统中的第一节点向所述分布式系统中的至少一个第二节点下发所述第一任务。
这里,第一节点在通过设定调度器调度第一数据同步任务的过程中,将第一数据同步任务配置为支持FlinkX执行的第一任务之后,可以向分布式系统中的任一第二节点下发第一任务,也可以向分布式系统中的至少两个第二节点下发第一任务。实际应用时,可以根据第二节点的数据处理性能和第二任务对应的数据量,确定用于执行第一任务的第二节点。
实际应用时,第一节点中运行的设定调度器的master进程,通过远程过程调用(RPC,Remote Procedure Call)服务向第二节点下发第一任务。步骤104:分布式系统中的第二节点接收第一节点下发的第一任务;其中,所述第一任务由所述第一节点在通过设定调度器调度对应的第一数据同步任务的过程中生成;所述第一任务表征由FlinkX执行的所述第一数据同步任务。
实际应用时,分布式系统中的第二节点运行设定调度器的work进程,接收第一节点通过RPC服务下发的第一任务。
步骤104:分布式系统中的第二节点调用FlinkX执行所述第一任务。
分布式系统中的第二节点在接收到第一任务的情况下,通过设置于设定调度器中的设定接口调用FlinkX,启动FlinkX进程基于第一任务携带的配置信息执行第一任务,得到第一任务的执行结果。
在一些实施例中,所述第一任务携带所述第一数据同步任务的配置信息,所述调用FlinkX执行所述第一任务,包括:
通过所述设定调度器基于所述配置信息生成任务描述文件;
通过所述设定调度器调用FlinkX,基于所述任务描述文件执行所述第一任务。
这里,第二节点中运行的设定调度器的work进程,根据第一任务携带的配置信息,构建执行第一数据同步任务的JSON(JavaScript Object Notation)结构体,将构建的JSON结构体写入JSON文件,得到第一任务对应的任务描述文件,并存储第一任务对应的任务描述文件。
第二节点中运行的设定调度器的work进程,调用FlinkX启动FlinkX进程;通过设定调度器的work进程基于第一任务对应的任务描述文件对应的存储路径,从对应的文件夹中获取第一任务对应的任务描述文件,将获取到的任务描述文件提交至FlinkX进程,即,向FlinkX进程提交第一任务。
通过运行的FlinkX进程,解析第一任务对应的任务描述文件,得到第一数据同步任务的配置信息,基于第一数据同步任务的配置信息执行第一数据同步任务,从而将数据源中待同步的数量,同步至数据目的地中。数据源和数据目的地均指设备。
考虑到调用FlinkX执行数据同步任务时,同步的数据中存在部分重复数据,为了避免同步重复的数据,以节省系统资源和提高数据同步效率,在一实施例中,所述调用FlinkX执行所述第一任务,包括:
在所述第一任务为增量同步任务的情况下,基于所述第一任务对应的数据源中最新的同步位置和数据目的地中的最新数据,进行增量同步。
这里,数据同步类型包括增量同步和全量同步。
在第一任务携带的配置信息中的第一指示表征增量同步的情况下,第二节点基于数据源的地址,从数据源中确定出最新的同步位置;基于数据目的地的地址,从数据目的地中确定出最新数据,基于数据源中最新的同步位置和数据目的地中的最新数据,在数据源中确定出待同步的增量数据,并对确定出的增量数据同步至数据目的地。
其中,数据源中的同步位置是在对数据源中的数据进行数据同步的过程中标记的。
为了准确地确定出待同步的增量数据,在一些实施例中,所述基于所述第一任务对应的数据源中最新的同步位置和数据目的地中的最新数据,进行增量同步,包括:
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据相同的情况下,对所述数据源中位于最新的同步位置之后的数据进行增量同步;或者
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据不同的情况下,从所述数据源中确定出与所述最新数据匹配的目标数据,对位于所述目标数据之后的数据进行增量同步。
这里,在数据源中最新的同步位置对应的数据与数据目的地中的最新数据相同的情况下,将数据源中位于最新的同步位置之后的数据,确定为待同步的增量数据,并对确定出的增量数据进行增量同步。
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据不同的情况下,从数据源中确定出与最新数据匹配的目标数据,将数据源中位于确定出的目标数据之后的数据,确定为待同步的增量数据,并对确定出的增量数据进行增量同步。
步骤105:分布式系统中的第二节点向所述第一节点发送所述第一任务的执行结果。
分布式系统中的第二节点在得到第一任务的执行结果的情况下,向第一节点发送第一任务的执行结果。
实际应用时,第二节点中设定调度器的work进程在检测到FlinkX进程执行结束,或者超时杀死FlinkX进程的情况下,通过RPC服务向第一节点中的master进程发送第一任务的执行结果。
在一些实施例中,所述接收第一节点下发的第一任务之后,所述方法还包括:
将所述第一任务的日志从YARN重定向至FlinkX。
考虑到第一任务是运行在第二节点中的YARN上,分布式系统中的第二节点在调用FlinkX执行第一任务的过程中,将第一任务的日志从YARN重定向至FlinkX,以从FlinkX拉取第一任务的日志。
其中,另一个资源协调器(YARN,Yet Another Resource Negotiator),是一个独立的资源管理系统。
本申请实施例中,分布式系统中的第一节点在通过设定调度器调度第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务,并向分布式系统中的至少一个第二节点下发第一任务,分布式系统中的第二节点接收第一节点下发的第一任务,调用FlinkX执行第一任务,第一任务表征由FlinkX执行的第一数据同步任务。这样,第一节点可以并行调度数据同步任务,分布式系统中不同的第二节点可以并行调用FlinkX执行通过设定调度器调度的数据同步任务,可实现多端数据同步,提高了数据同步效率。由于FlinkX支持增量同步和断点续传,因此,调用FlinkX执行第一任务,还可以提高第一任务的可靠性和灵活性。
图2为本申请应用实施例提供的数据同步方法的示意图,如图2所示,数据同步方法包括:
①用户提交数据同步任务。
这里,用户通过终端设备登陆分布式系统的前端页面,在前端页面配置数据同步任务,并触发终端设备向分布式系统中的第一节点提交配置的数据同步任务。
②分布式系统中的第一节点校验并保存数据同步任务。
这里,分布式系统中的第一节点对用户提交的数据同步任务进行校验,在对数据同步任务校验通过的情况下,将数据同步任务保存至数据库。
③分布式系统中的第一节点通过设定调度器的master进程,调用Quartz,从数据库中获取待调度的第一数据同步任务,得到第一数据同步任务,并定时触发第一数据同步任务,将已触发的第一数据同步任务写入优先级队列。
④分布式系统中的第一节点通过设定调度器中的消费线程从优先级队列中获取第一数据同步任务,将所述第一数据同步任务配置为支持FlinkX执行的第一任务。
其中,第一数据同步任务携带第一数据同步任务的配置信息。
这里,第一节点运行设定调度器的master进程中的消费线程,基于FlinkX支持的数据格式对第一数据同步任务携带的配置信息进行序列化,生成执行上下文;基于执行上下文生成第一任务。其中,第一任务携带执行上下文。
⑤分布式系统中的第一节点运行的设定调度器的master进程,通过RPC服务,向至少一个第二节点下发第一任务。
⑥分布式系统中的第二节点运行设定调度器的work进程,接收第一节点下发的第一任务,将第一任务提交至线程池。
这里,在接收到第一节点下发的第一任务的情况下,对第一任务携带的执行上下文进行反序列化,得到对应的配置信息,将携带配置信息的第一任务提交至线程池。
⑦分布式系统中的第二节点通过设定调度器的work进程的TaskManager创建第一任务对应的FlinkxTask实例。
其中,FlinkxTask实例主要负责生成第一任务对应的任务描述文件、启动第一任务、监控第一任务执行以及日志重定向。
如图3所示,FlinkxTask实例中包括以下对象和接口:
TaskExecutionContext:表征接口,用于为FlinkxTask实例提供数据同步任务的运行参数。
FlinkxTasckExecutionContext:表征对象,用于为FlinkxTask实例提供数据源的连接配置参数和数据目的地的连接配置参数。
FlinkxParameters:表征对象,用于为FlinkxTask实例提供数据同步任务的系统参数,数据源的参数和数据目的地的参数。
设定调度器的work进程运行FlinkxTask实例生成第一任务对应的任务描述文件。
这里,FlinkxTask实例根据第一任务携带的配置信息,构建执行第一数据同步任务的JSON(JavaScript Object Notation)结构体,将构建的JSON结构体写入JSON文件,得到第一任务对应的任务描述文件,并存储第一任务对应的任务描述文件。
⑧FlinkxTask实例启动FlinkX进程,基于任务描述文件执行第一任务。
这里,设定调度器的work进程中运行的FlinkxTask实例,调用FlinkX并启动FlinkX进程;运行的FlinkxTask实例基于第一任务对应的任务描述文件对应的存储路径,从对应的文件夹中获取第一任务对应的任务描述文件,将获取到的任务描述文件提交至FlinkX进程,即,向FlinkX进程提交第一任务。
通过运行的FlinkX进程,解析第一任务对应的任务描述文件,得到第一数据同步任务的配置信息,基于第一数据同步任务的配置信息执行第一数据同步任务,从而将数据源中待同步的数量,同步至数据目的地中。
实际应用时,第二节点通过FlinkxTask实例,执行/bin/flink-fg-flinkconfpath-mode yarn-Per-job job_path,获取第一任务对应的JSON任务描述文件,将获取到的任务描述文件提交至FlinkX进程。其中,job_path是指JSON任务描述文件的存储路径。
⑨FlinkxTask实例将第一任务的日志从YARN重定向至FlinkX。
⑩FlinkxTask实例向分布式系统中的第一节点上报第一任务对应的执行结果。
这里,FlinkxTask实例等待FlinkX进程执行结束,或者在超时的情况下,杀死FlinkX进程;FlinkxTask实例将执行结果通过RPC服务上报至分布式系统中的第一节点的设定调度器的master进程;通过设定调度器的master进程将第一任务对应的执行结果写入分布式系统的数据库。
为实现本申请实施例的应用于分布式系统的第一节点的数据同步方法,本申请实施例还提供了一种电子设备,如图4所示,该电子设备包括:
获取单元41,用于通过设定调度器获取待调度的第一数据同步任务;
生成单元42,用于在所述设定调度器调度所述第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务;
发送单元43,用于向所述分布式系统中的至少一个第二节点下发所述第一任务。
在一些实施例中,生成单元42具体用于:基于所述第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一任务。
在一些实施例中,所述配置信息包括数据源的配置信息、数据目的地的配置信息、系统参数和任务运行参数。
在一些实施例中,生成单元42具体用于:按照FlinkX支持的JSON数据格式,对所述第一数据同步任务的配置信息进行处理,得到第一任务。
实际应用时,获取单元41、生成单元42和发送单元43可通过电子设备中的处理器,比如中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SignalProcessor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)等实现。
需要说明的是:上述实施例提供的电子设备在进行数据同步时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子设备与数据同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
为实现本申请实施例的应用于分布式系统的第二节点的数据同步方法,本申请实施例还提供了一种电子设备,如图5所示,该电子设备包括:
接收单元51,用于接收第一节点下发的第一任务;其中,所述第一任务由所述第一节点通过设定调度器调度对应的第一数据同步任务的过程中生成;所述第一任务表征由FlinkX执行的所述第一数据同步任务;
执行单元52,用于调用FlinkX执行所述第一任务。
在一些实施例中,执行单元52具体用于:
通过所述设定调度器基于所述配置信息生成任务描述文件;
通过所述设定调度器调用FlinkX,基于所述任务描述文件执行所述第一任务。
在一些实施例中,该电子设备还包括:
重定向单元,用于将所述第一任务的日志从YARN重定向至FlinkX。
在一些实施例中,执行单元52具体用于:
在所述第一任务为增量同步任务的情况下,基于所述第一任务对应的数据源中最新的同步位置和数据目的地中的最新数据,进行增量同步。
在一些实施例中,执行单元52具体用于:在数据源中最新的同步位置对应的数据与数据目的地中的最新数据相同的情况下,对所述数据源中位于最新的同步位置之后的数据进行增量同步;或者
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据不同的情况下,从所述数据源中确定出与所述最新数据匹配的目标数据,对位于所述目标数据之后的数据进行增量同步。
实际应用时,接收单元51、执行单元52和重定向单元可通过电子设备中的处理器,比如CPU、DSP、MCU或FPGA等实现。
需要说明的是:上述实施例提供的电子设备在进行数据同步时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子设备与数据同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备。图6为本申请实施例电子设备的硬件组成结构示意图,如图6所示,电子设备6包括:
通信接口61,能够与其它设备比如网络设备等进行信息交互;
处理器62,与所述通信接口61连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述应用于分布式系统的第一节点或第二节点的一个或多个技术方案提供的数据同步方法。而所述计算机程序存储在存储器63上。
当然,实际应用时,电子设备6中的各个组件通过总线系统64耦合在一起。可理解,总线系统64用于实现这些组件之间的连接通信。总线系统64除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统64。
本申请实施例中的存储器63用于存储各种类型的数据以支持电子设备6的操作。这些数据的示例包括:用于在电子设备6上操作的任何计算机程序。
可以理解,存储器63可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器63旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器62中,或者由处理器62实现。处理器62可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器62中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器62可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器62可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器63,处理器62读取存储器63中的程序,结合其硬件完成前述方法的步骤。
可选地,所述处理器62执行所述程序时实现本申请实施例的各个方法中由终端实现的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器63,上述计算机程序可由终端的处理器62执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种数据同步方法,其特征在于,应用于分布式系统中的第一节点,所述方法包括:
通过设定调度器获取待调度的第一数据同步任务;
在所述设定调度器调度所述第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务,并向所述分布式系统中的至少一个第二节点下发所述第一任务。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一数据同步任务配置为支持FlinkX执行的第一任务,包括:
基于所述第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一任务。
3.根据权利要求2所述的方法,其特征在于,所述配置信息包括数据源的配置信息、数据目的地的配置信息、系统参数和任务运行参数。
4.根据权利要求2或3所述的方法,其特征在于,所述基于所述第一数据同步任务的配置信息和FlinkX支持的数据格式,生成第一任务,包括:
按照FlinkX支持的JSON数据格式,对所述第一数据同步任务的配置信息进行处理,得到第一任务。
5.一种数据同步方法,其特征在于,应用于分布式系统中的第二节点,所述方法包括:
接收第一节点下发的第一任务;其中,所述第一任务由所述第一节点在通过设定调度器调度对应的第一数据同步任务的过程中生成;所述第一任务表征由FlinkX执行的所述第一数据同步任务;
调用FlinkX执行所述第一任务。
6.根据权利要求5所述的方法,其特征在于,所述第一任务携带所述第一数据同步任务的配置信息,所述调用FlinkX执行所述第一任务,包括:
通过所述设定调度器基于所述配置信息生成任务描述文件;
通过所述设定调度器调用FlinkX,基于所述任务描述文件执行所述第一任务。
7.根据权利要求5所述的方法,其特征在于,在所述接收第一节点下发的第一任务之后,所述方法还包括:
将所述第一任务的日志从YARN重定向至FlinkX。
8.根据权利5至7任一项所述的方法,其特征在于,所述调用FlinkX执行所述第一任务,包括:
在所述第一任务为增量同步任务的情况下,基于所述第一任务对应的数据源中最新的同步位置和数据目的地中的最新数据,进行增量同步。
9.根据权利要求8所述的方法,其特征在于,所述基于所述第一任务对应的数据源中最新的同步位置和数据目的地中的最新数据,进行增量同步,包括:
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据相同的情况下,对所述数据源中位于最新的同步位置之后的数据进行增量同步;或者
在数据源中最新的同步位置对应的数据与数据目的地中的最新数据不同的情况下,从所述数据源中确定出与所述最新数据匹配的目标数据,对位于所述目标数据之后的数据进行增量同步。
10.一种电子设备,其特征在于,包括:
获取单元,用于通过设定调度器获取待调度的第一数据同步任务;
生成单元,用于在所述设定调度器调度所述第一数据同步任务的过程中,将所述第一数据同步任务配置为支持FlinkX执行的第一任务;
发送单元,用于向所述分布式系统中的至少一个第二节点下发所述第一任务。
11.一种电子设备,其特征在于,包括:
接收单元,用于接收第一节点下发的第一任务;其中,所述第一任务由所述第一节点在通过设定调度器调度对应的第一数据同步任务的过程中生成;所述第一任务表征由FlinkX执行的所述第一数据同步任务;
执行单元,用于调用FlinkX执行所述第一任务。
12.一种电子设备,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行以下之一:
权利要求1至4任一项所述的数据同步方法的步骤;
权利要求5至9任一项所述的数据同步方法的步骤。
13.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下之一:
权利要求1至4任一项所述的数据同步方法的步骤;
权利要求5至9任一项所述的数据同步方法的步骤。
CN202111013823.4A 2021-08-31 2021-08-31 数据同步方法、电子设备及存储介质 Pending CN113704355A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111013823.4A CN113704355A (zh) 2021-08-31 2021-08-31 数据同步方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111013823.4A CN113704355A (zh) 2021-08-31 2021-08-31 数据同步方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113704355A true CN113704355A (zh) 2021-11-26

Family

ID=78658090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111013823.4A Pending CN113704355A (zh) 2021-08-31 2021-08-31 数据同步方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113704355A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023101610A3 (en) * 2021-12-01 2023-08-10 Shopee IP Singapore Private Limited Device and method for synchronizing data between data sources

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254774A1 (en) * 2007-08-27 2009-10-08 Kickfire, Inc. Methods and systems for run-time scheduling database operations that are executed in hardware
US20170031779A1 (en) * 2014-10-20 2017-02-02 Hitachi Data Systems Corporation Data system for managing synchronized data protection operations at nodes of the data system, source node and destination node, and computer program product for use in such data system
CN107463356A (zh) * 2017-08-17 2017-12-12 北京云纵信息技术有限公司 任务流程的执行方法和装置
WO2019027597A1 (en) * 2017-08-02 2019-02-07 Siemens Aktiengesellschaft WORKFLOW MANAGEMENT FRAMEWORK
CN111352709A (zh) * 2018-12-20 2020-06-30 顺丰科技有限公司 分布式系统中的任务调度方法和装置
US20200272978A1 (en) * 2019-02-22 2020-08-27 American Express Travel Related Services Company, Inc. Optimizing user task schedules in a customer relationship management platform
CN112214551A (zh) * 2020-10-22 2021-01-12 微医云(杭州)控股有限公司 数据同步方法、系统、装置、电子设备、存储介质
CN112380183A (zh) * 2020-11-13 2021-02-19 深圳市和讯华谷信息技术有限公司 分布式文件的同步方法、装置、计算机设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254774A1 (en) * 2007-08-27 2009-10-08 Kickfire, Inc. Methods and systems for run-time scheduling database operations that are executed in hardware
US20170031779A1 (en) * 2014-10-20 2017-02-02 Hitachi Data Systems Corporation Data system for managing synchronized data protection operations at nodes of the data system, source node and destination node, and computer program product for use in such data system
WO2019027597A1 (en) * 2017-08-02 2019-02-07 Siemens Aktiengesellschaft WORKFLOW MANAGEMENT FRAMEWORK
CN107463356A (zh) * 2017-08-17 2017-12-12 北京云纵信息技术有限公司 任务流程的执行方法和装置
CN111352709A (zh) * 2018-12-20 2020-06-30 顺丰科技有限公司 分布式系统中的任务调度方法和装置
US20200272978A1 (en) * 2019-02-22 2020-08-27 American Express Travel Related Services Company, Inc. Optimizing user task schedules in a customer relationship management platform
CN112214551A (zh) * 2020-10-22 2021-01-12 微医云(杭州)控股有限公司 数据同步方法、系统、装置、电子设备、存储介质
CN112380183A (zh) * 2020-11-13 2021-02-19 深圳市和讯华谷信息技术有限公司 分布式文件的同步方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
\'煎饼侠: "FlinkX数据同步", pages 1 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/Baron_ND/article/details/112327154> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023101610A3 (en) * 2021-12-01 2023-08-10 Shopee IP Singapore Private Limited Device and method for synchronizing data between data sources

Similar Documents

Publication Publication Date Title
CN110069572B (zh) 基于大数据平台的hive任务调度方法、装置、设备及存储介质
CN108874558B (zh) 分布式事务的消息订阅方法、电子装置及可读存储介质
CN107016480B (zh) 任务调度方法、装置及系统
CN107451147B (zh) 一种kafka集群动态切换的方法和装置
US10430172B2 (en) Re-configuration in cloud computing environments
CN110825420A (zh) 分布式集群的配置参数更新方法、装置、设备及存储介质
CN109656782A (zh) 可视化调度监控方法、装置及服务器
CN102880503A (zh) 数据分析系统及数据分析方法
CN113220431B (zh) 跨云的分布式数据任务调度方法、设备及存储介质
CN111897633A (zh) 一种任务处理的方法和装置
CN109995612B (zh) 一种服务巡检方法、装置及电子设备
CN111831191A (zh) 工作流配置方法、装置、计算机设备和存储介质
CN108900627B (zh) 一种网络请求方法、终端装置及存储介质
CN107577527B (zh) 任务生成、调度方法及装置
CN111190732A (zh) 定时任务处理系统及方法、存储介质和电子设备
CN111782452A (zh) 接口对比测试的方法、系统、设备和介质
CN109905263A (zh) 一种自动化运维部署系统
CN109902028A (zh) Acl特性的自动化测试方法、装置、设备及存储介质
CN108399095B (zh) 支持动态管理定时任务的方法、系统、设备和存储介质
CN116719622A (zh) 业务流程的编排方法及业务流程编排系统
CN113704355A (zh) 数据同步方法、电子设备及存储介质
CN117076096A (zh) 任务流程的执行方法、装置、计算机可读介质及电子设备
CN110109986B (zh) 任务处理方法、系统、服务器及任务调度系统
CN112445860A (zh) 一种处理分布式事务的方法和装置
CN112463574A (zh) 软件测试方法、装置、系统、设备和存储介质

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