一种利用云原生资源的数据湖构建方法与流程

文档序号:33505608发布日期:2023-03-18 00:15阅读:54来源:国知局
1.本发明属于大数据
技术领域
:。
背景技术
::2.随着5g、大数据、人工智能、物联网等新兴技术的不断发展,数据呈现出爆炸性增长,越来越多的大数据产品出现,数据湖技术成为其中的代表,数据湖是一种大型数据存储和处理引擎,支持存储结构化数据、半结构化数据和非结构化数据等不同类型数据,同时可实现不同类型海量数据的并行存取、处理、分析和传输,但数据湖在构建过程中存在着组件多、部署难度高、效率低、机器成本和维护成本比较高等问题。3.云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。4.云原生数据湖是基于云环境构建的低成本大数据解决方案,对于存储,云原生数据湖采用对象存储或hdfs,实现了容量按需扩容和更低的价格,同时云上统一存储也简化了之后数据调用的复杂度;对于计算,云原生数据湖采用计算存储分离的架构,让计算节点弹性伸缩,避免了存算需求不同造成的浪费,利用云原生应用弹性伸缩和自动化部署,充分利用云资源实现在最少的空间里做最大的事。技术实现要素:本发明旨在至少在一定程度上解决相关技术中的技术问题之一。5.为此,本发明的目的在于提出一种利用云原生资源的数据湖构建方法,用于基于云环境低成本云构建云原生数据湖。6.为达上述目的,本发明第一方面实施例提出了一种利用云原生资源的数据湖构建方法,包括:构建数据源及数据源表、数据湖数据目录,所述数据湖数据目录用于保存数据湖表以及对象存储或hdfs的文件路径;配置入湖任务,根据所述数据源表以及数据湖数据目录生成入湖任务参数,将所述入湖任务以及入湖任务参数提交至服务应用中心;通过所述服务应用中心将所述入湖任务以及入湖任务参数转发至任务调度中心入湖队列,在计算资源状态处于空闲时,将所述入湖任务以及入湖任务参数转发至资源调度中心;通过所述资源调度中心解析所述入湖任务参数,获取所述数据源及数据源表,对所述数据源及数据源表做映射获取数据源元数据信息和中间表元数据信息,生成抽象语法树,并基于所述抽象语法树生成任务计划,根据所述任务计划调度计算资源在对应数据湖数据目录执行数据写入任务,完成数据湖的构建。7.另外,根据本发明上述实施例的一种利用云原生资源的数据湖构建方法还可以具有以下附加的技术特征:进一步地,在本发明的一个实施例中,在构建数据源及数据源表、数据湖数据目录之前,还包括:在云原生资源上部署数据湖,其中,所述云原生资源包括存储资源和计算资源。8.进一步地,在本发明的一个实施例中,还包括:构建存储资源和计算资源,其中,所述构建所述存储资源的流程包括,创建s_configmap构建对象存储配置文件;编写store_template.yaml创建s_deployment,并由s_deployment创建对象存储容器;构建s_service为对象存储提供对外连接服务;所述构建所述计算资源的流程包括,创建c_configmap构建计算资源配置文件;编写computer_template.yaml创建c_deployment,并由c_deployment创建计算资源容器;构建c_service为计算资源集群提供对外连接服务;所述构建所述计算资源的流程还包括,通过计算资源弹性伸缩策略避免计算资源过载。9.进一步地,在本发明的一个实施例中,所述构建数据源及数据源表,包括:接收将所述数据源用户从ui页面输入外部数据源的ip地址、端口号、用户名和密码中的源连接信息生成数据源信息;存放所述数据源信息,将所述数据源信息与元数据中间表存储路径对应;对所述数据源信息进行划分,指定所述数据源信息输出目录。10.进一步地,在本发明的一个实施例中,所述在计算资源状态处于空闲时,将所述入湖任务以及入湖任务参数转发至资源调度中心,包括:当所述入湖任务到达所述入湖队列队首时,若存在计算资源状态处于空闲时,接受mastertasker调度,将所述入湖任务以及入湖任务参数转发至资源调度中心;其中,所述mastertasker用于从云原生资源管理中心获取计算资源状态,当计算资源空闲,采取fifo策略从任务队列中获取任务并提交至资源调度中心。11.进一步地,在本发明的一个实施例中,还包括:通过metricsserver收集每一个工作节点memory的cpu占比metrics,将所述metrics汇报给autoscalerserver,通过所述autoscalerserver根据度量所述metrics是否在阈值区间控制计算资源数量。12.进一步地,在本发明的一个实施例中,在根据所述任务计划调度计算资源在对应数据湖数据目录执行数据写入任务之后,还包括:通过资源调度中心向服务应用中心汇报执行结果,通过服务应用中心将所述执行结果递交至前端显示输出。13.为达上述目的,本发明第二方面实施例提出了一种利用云原生资源的数据湖构建装置,包括以下模块:构建模块,用于构建数据源及数据源表、数据湖数据目录,所述数据湖数据目录用于保存数据湖表以及对象存储或hdfs的文件路径;配置模块,用于配置入湖任务,根据所述数据源表以及数据湖数据目录生成入湖任务参数,将所述入湖任务以及入湖任务参数提交至服务应用中心;调度模块,用于通过所述服务应用中心将所述入湖任务以及入湖任务参数转发至任务调度中心入湖队列,在计算资源状态处于空闲时,将所述入湖任务以及入湖任务参数转发至资源调度中心;执行模块,用于通过所述资源调度中心解析所述入湖任务参数,获取所述数据源及数据源表,对所述数据源及数据源表做映射获取数据源元数据信息和中间表元数据信息,生成抽象语法树,并基于所述抽象语法树生成任务计划,根据所述任务计划调度计算资源在对应数据湖数据目录执行数据写入任务,完成数据湖的构建。14.为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的一种利用云原生资源的数据湖构建方法。15.为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的一种利用云原生资源的数据湖构建方法。16.本发明实施例提出的利用云原生资源的数据湖构建方法,有益效果有:1)利用云原生构建存储资源和计算资源,实现计算存储分离;2)将数据处理进行模块解耦,依次分成服务应用中心、任务调度中心、资源调度中心和度量控制中心,相互解耦又依次紧密相连,实现资源合理调度与分配;3)对于作业任务制定资源分配策略,保证资源利用最大化;4)度量控制中心监测工作节点状态,动态扩缩工作节点数量,提高数据处理速度。附图说明17.本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明实施例所提供的一种利用云原生资源的数据湖构建方法的流程示意图。18.图2为本发明实施例所提供的一种计算资源集群生成及自动伸缩过程示意图。19.图3为本发明实施例所提供的一种利云原生资源构建数据湖示意图。20.图4为本发明实施例所提供的一种数据处理任务执行步骤示意图。21.图5为本发明实施例所提供的一种利用云原生资源的数据湖构建装置的流程示意图。22.图6为本发明实施例所提供的一种store_template.yaml伪代码示意图。23.图7为本发明实施例所提供的一种store_template.yaml伪代码示意图。具体实施方式24.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。25.下面参考附图描述本发明实施例的利用云原生资源的数据湖构建方法。26.图1为本发明实施例所提供的一种利用云原生资源的数据湖构建方法的流程示意图。27.如图1所示,该利用云原生资源的数据湖构建方法包括以下步骤:s101:构建数据源及数据源表、数据湖数据目录,数据湖数据目录用于保存数据湖表以及对象存储或hdfs的文件路径;进一步地,在本发明的一个实施例中,在构建数据源及数据源表、数据湖数据目录之前,还包括:在云原生资源上部署数据湖,其中,云原生资源包括存储资源和计算资源。28.进一步地,在本发明的一个实施例中,还包括:构建存储资源和计算资源,其中,构建存储资源的流程包括,创建s_configmap构建对象存储配置文件;编写store_template.yaml创建s_deployment,并由s_deployment创建对象存储容器;构建s_service为对象存储提供对外连接服务;构建计算资源的流程包括,创建c_configmap构建计算资源配置文件;编写computer_template.yaml创建c_deployment,并由c_deployment创建计算资源容器;构建c_service为计算资源集群提供对外连接服务;构建计算资源的流程还包括,通过计算资源弹性伸缩策略避免计算资源过载。29.具体的,根据现有技术构建云原生资源,为进行云原生服务资源隔离,创建namespace,服务资源分为存储资源和计算资源,是构建数据湖资源的底层部分。30.为更好理解本发明,定义数据字典如表1所示。31.表1备注:本发明作如下定义,store(存储资源)简写s,database(数据库)简写db,metastore(元数据库)简写m,computer(计算资源)简写c,为区分每一类资源,使用“简写_”加上述数据字典名词(例如,s_deployment,代表存储资源的deployment)。32.构建存储资源的步骤如下:s201:构建云原生存储资源;1)创建s_configmap构建对象存储配置文件;2)编写store_template.yaml创建s_deployment,并由s_deployment创建对象存储容器;3)构建s_service为对象存储提供对外连接服务。33.s202:构建metastore容器;1)从镜像仓库拉取关系型数据库构建db_pod(关系数据库容器),连接账号根据用户账户信息参数设定,并提供对外连接的db_service服务;2)构建m_configmap绑定metastore与db_pod、对象存储的关系;3)编写yaml创建m_deployment,并由m_deployment创建metastore容器;4)构建m_service为metastore提供对外连接服务;5)生成m_job资源,初始化metastore。34.通过利用云原生监管资源,屏蔽底层存储的差异,保证灾备容错机制,为数据湖容量扩展提供存储支持。35.其中,所述store_template.yaml伪代码如图6所示。36.构建存储资源的步骤如下:s301:构建计算资源镜像(非必须步骤);由于目前部分计算引擎不包含数据湖技术jar包,需要基于已有计算引擎镜像加入数据湖技术jar包,才可进行后续操作,本发明对缺乏jar包的计算引擎镜像进行了重新构建,并上传至私有仓库。37.s302:构建计算集群资源;1)创建c_configmap构建计算资源配置文件。。38.2)编写computer_template.yaml创建c_deployment,并由c_deployment创建计算资源容器。39.3)构建c_service为计算资源集群提供对外连接服务。40.其中,所述computer_template.yaml伪代码如图7所示。41.如图2,本发明为避免计算资源过载或者浪费,设置如下策略,metricsserver负责收集每一个工作节点memory、cpu占比(metrics),将收集的metrics汇报给autoscalerserver,autoscalerserver根据metrics度量是否在阈值区间来控制计算资源c_pod数量。42.当占比超过max阈值后,通过增加c_deployment属性replicas数量扩增c_pod个数,直到占比低于max阈值,当占比低于min阈值,同理,通过减少c_deployment属性replicas数量c_pod个数,直到占比高于min阈值。43.进一步地,在本发明的一个实施例中,构建数据源及数据源表,包括:接收将数据源用户从ui页面输入外部数据源的ip地址、端口号、用户名和密码中的源连接信息生成数据源信息;存放数据源信息,将数据源信息与元数据中间表存储路径对应;对数据源信息进行划分,指定数据源信息输出目录。44.具体的,由于数据湖主要存放着原始数据、部分计算结果中间数据,为防止数据堆积导致数据可用性低,对原始数据集合进行四级划分,集合与集合之间形成交并集的概念,共有部分相互复用,私有部分相互隔离。元数据配置包括domain配置、catalog配置(与database同义)、table配置和columns配置。45.对数据集合进行四级划分,domain为一类catalog集合,规范每一类数据消费群体,domain与domain组合适应新场景,catalog为domain的子集,是一组table的集合,table配置分为映射表和中间表,映射表为输出结果的关系表,结合数据源连接的表名称生成,中间表是在数据湖定义的schema,即定义schema名称、columns名称,支持数据文件存储格式定义,包括parquet、avro、orc格式文件,为进行规划化定义,需要指定数据文件输出目录。46.s102:配置入湖任务,根据数据源表以及数据湖数据目录生成入湖任务参数,将入湖任务以及入湖任务参数提交至服务应用中心;本发明的云原生数据处理服务流程由服务应用中心、任务调度中心,资源调度中心、度量控制中心、云原生计算资源、云原生存储资源6个部分完成。以下对各部分功能进行介绍。47.1、服务应用中心1)服务解析:根据前端请求(例如数据分析、作业任务等),调取服务转发接口;2)服务转发:从服务解析获取任务具体内容生成任务参数,转发至任务调度中心;3)回调结果:将计算任务结果返回给前端。48.2、任务调度中心1)任务队列:根据服务转发的任务参数形成一个task,每个task根据任务类型加到相应队列(例如数据分析、作业任务队列等);2)mastertasker:从云原生资源管理中心获取计算资源状态,当计算资源空闲,采取fifo策略从任务队列中获取任务并提交至资源调度中心。49.3、资源调度中心通过解析器解析mastertasker提交的任务,生成语法生成树(ast),根据与ast生成任务执行计划,根据任务计划规则,向云原生计算资源申请worker并行处理数据。50.4、度量控制中心metricsserver:metricsserver负责收集每一个工作节点memory、cpu占比(metrics),将收集的metrics汇报给autoscalerserver;autoscalerserver根据metrics度量是否在阈值区间来控制计算资源worker数量。51.5、云原生资源管理中心创建新的资源集群。52.s103:通过服务应用中心将入湖任务以及入湖任务参数转发至任务调度中心入湖队列,在计算资源状态处于空闲时,将入湖任务以及入湖任务参数转发至资源调度中心;进一步地,在本发明的一个实施例中,在计算资源状态处于空闲时,将入湖任务以及入湖任务参数转发至资源调度中心,包括:当入湖任务到达入湖队列队首时,若存在计算资源状态处于空闲时,接受mastertasker调度,将入湖任务以及入湖任务参数转发至资源调度中心;其中,mastertasker用于从云原生资源管理中心获取计算资源状态,当计算资源空闲,采取fifo策略从任务队列中获取任务并提交至资源调度中心。53.s104:通过资源调度中心解析入湖任务参数,获取数据源及数据源表,对数据源及数据源表做映射获取数据源元数据信息和中间表元数据信息,生成抽象语法树,并基于抽象语法树生成任务计划,根据任务计划调度计算资源在对应数据湖数据目录执行数据写入任务,完成数据湖的构建。54.进一步地,在本发明的一个实施例中,还包括:通过metricsserver收集每一个工作节点memory的cpu占比metrics,将metrics汇报给autoscalerserver,通过autoscalerserver根据度量metrics是否在阈值区间控制计算资源数量。55.进一步地,在本发明的一个实施例中,在根据任务计划调度计算资源在对应数据湖数据目录执行数据写入任务之后,还包括:通过资源调度中心向服务应用中心汇报执行结果,通过服务应用中心将执行结果递交至前端显示输出。56.以上为完整的利用云原生资源的数据湖构建方法流程,图3为本发明的云原生资源构建数据湖流程示意图,图4为本发明实施例提供的的数据处理任务执行步骤。57.本发明实施例提出的利用云原生资源的数据湖构建方法,有益效果有:1)利用云原生构建存储资源和计算资源,实现计算存储分离;2)将数据处理进行模块解耦,依次分成服务应用中心、任务调度中心、资源调度中心和度量控制中心,相互解耦又依次紧密相连,实现资源合理调度与分配;3)对于作业任务制定资源分配策略,保证资源利用最大化;4)度量控制中心监测工作节点状态,动态扩缩工作节点数量,提高数据处理速度。58.为了实现上述实施例,本发明还提出一种利用云原生资源的数据湖构建装置。59.图5为本发明实施例提供的一种利用云原生资源的数据湖构建装置的结构示意图。60.如图5所示,该利用云原生资源的数据湖构建装置包括:构建模块100,配置模块200,调度模块300,执行模块400,其中,构建模块,用于构建数据源及数据源表、数据湖数据目录,所述数据湖数据目录用于保存数据湖表以及对象存储或hdfs的文件路径;配置模块,用于配置入湖任务,根据所述数据源表以及数据湖数据目录生成入湖任务参数,将所述入湖任务以及入湖任务参数提交至服务应用中心;调度模块,用于通过所述服务应用中心将所述入湖任务以及入湖任务参数转发至任务调度中心入湖队列,在计算资源状态处于空闲时,将所述入湖任务以及入湖任务参数转发至资源调度中心;执行模块,用于通过所述资源调度中心解析所述入湖任务参数,获取所述数据源及数据源表,对所述数据源及数据源表做映射获取数据源元数据信息和中间表元数据信息,生成抽象语法树,并基于所述抽象语法树生成任务计划,根据所述任务计划调度计算资源在对应数据湖数据目录执行数据写入任务,完成数据湖的构建。61.为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的利用云原生资源的数据湖构建方法。62.为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的利用云原生资源的数据湖构建方法。63.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。64.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。65.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1