CN111813621A - 基于Flume数据中台的数据处理方法、装置、设备及介质 - Google Patents
基于Flume数据中台的数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111813621A CN111813621A CN202010579722.2A CN202010579722A CN111813621A CN 111813621 A CN111813621 A CN 111813621A CN 202010579722 A CN202010579722 A CN 202010579722A CN 111813621 A CN111813621 A CN 111813621A
- Authority
- CN
- China
- Prior art keywords
- data
- service process
- real
- distributed
- proxy node
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于Flume数据中台的数据处理方法、装置、设备及介质,涉及大数据处理领域。该方法包括:获取日志规则,按照日志规则采集数据,并将数据发送到消息队列;通过消息队列将数据输入到分布式数据中台;将数据从分布式数据中台输出到存储介质;其中,在数据从分布式数据中台输出到存储介质的过程中,主设备采用主从心跳机制,检测代理节点中服务进程的实时状态,并根据实时状态启用备用服务进程,基于备用服务进程输出数据,或者,根据实时状态,采用数据均衡落地的方式输出数据。采用该基于Flume数据中台的数据处理方法能够在数据处理过程中有效降低存储空间的占用率。
Description
【技术领域】
本发明涉及大数据处理领域,尤其涉及一种基于Flume数据中台的数据处理方法、装置、设备及介质。
【背景技术】
数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,形成大数据资产层,进而为客户提供高效服务的技术。
现有的数据中台是通过进程直连数据源的方式获取数据,当一个进程异常退出时,数据中台无法及时告警、修复,容易出现数据丢失的情况。因此,在数据中台实现数据处理的过程中,为了保证数据不丢失,数据中台的服务进程中都落地了相同的一份数据,但这将导致大量的数据重复冗余,过多地占用存储空间。
【发明内容】
有鉴于此,本发明实施例提供了一种基于Flume数据中台的数据处理方法、装置、设备及介质,用以解决数据中台在实现数据处理的过程中数据占用存储空间过多的问题。
第一方面,本发明实施例提供了一种基于Flume数据中台的数据处理方法,包括:
获取日志规则,按照所述日志规则采集数据,并将所述数据发送到消息队列;
通过所述消息队列将所述数据输入到分布式数据中台,其中,所述分布式数据中台包括主设备,以及多个分布式集群,每个所述分布式集群中包括多个从设备,作为所述分布式集群的代理节点,所述分布式数据中台基于Flume实现;
将所述数据从所述分布式数据中台输出到存储介质;
其中,在所述数据从所述分布式数据中台输出到所述存储介质的过程中,所述主设备采用主从心跳机制,检测所述代理节点中服务进程的实时状态,并根据所述实时状态启用备用服务进程,基于所述备用服务进程输出所述数据,或者,根据所述实时状态,采用数据均衡落地的方式输出所述数据。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述在所述数据从所述分布式数据中台输出到所述存储介质的过程中,所述主设备采用主从心跳机制,检测所述代理节点中服务进程的实时状态,包括:
所述代理节点定时向所述主设备发送心跳信息,其中,所述心跳信息包括内存占用率和中央处理器占用率;
所述主设备根据所述心跳信息判断所述代理节点中服务进程的实时状态;
当所述代理节点中服务进程内存占用率超过第一预设阈值或中央处理器占用率超过第二预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过多;
当所述代理节点中服务进程内存占用率低于第三预设阈值或中央处理器占用率低于第四预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过剩。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述实时状态启用备用服务进程,基于所述备用服务进程输出所述数据,或者,根据所述实时状态,采用数据均衡落地的方式输出所述数据,包括:
当所述代理节点中服务进程的所述实时状态为负荷过多,且所述代理节点中服务进程不存在所述备用服务进程时,启用所述备用服务进程,基于所述备用服务进程输出所述数据;
当所述代理节点中服务进程的所述实时状态为负荷过剩,且所述消息队列采用Kafka时,根据Kafka group id,采用数据均衡落地的方式输出所述数据。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获取日志规则,按照所述日志规则采集数据,并将所述数据发送到消息队列,包括:
通过预架设的配置服务中心提供多数据源接入的服务,其中,所述预架设的配置服务中心采用前端界面的方式进行操作;
通过所述前端界面获取用户输入的所述日志规则,按照所述日志规则和所述多数据源接入的服务,从多个数据源中采集所述数据,并将所述数据发送到Kafka。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述将所述数据从所述分布式数据中台输出到存储介质,包括:
通过预架设的数据服务中心提供数据统一接口;
根据所述数据统一接口,将所述数据从所述分布式数据中台输出到同一非易失性存储介质。
第二方面,本发明实施例提供了一种基于Flume数据中台的数据处理装置,包括:
第一处理模块,用于获取日志规则,按照所述日志规则采集数据,并将所述数据发送到消息队列;
第二处理模块,用于通过所述消息队列将所述数据输入到分布式数据中台,其中,所述分布式数据中台包括主设备,以及多个分布式集群,每个所述分布式集群中包括多个从设备,作为所述分布式集群的代理节点,所述分布式数据中台基于Flume实现;
第三处理模块,用于将所述数据从所述分布式数据中台输出到存储介质;
第四处理模块,用于在所述数据从所述分布式数据中台输出到所述存储介质的过程中,所述主设备采用主从心跳机制,检测所述代理节点中服务进程的实时状态,并根据所述实时状态启用备用服务进程,基于所述备用服务进程输出所述数据,或者,根据所述实时状态,采用数据均衡落地的方式输出所述数据。
进一步地,所述第四处理模块包括:
第一子单元,用于所述代理节点定时向所述主设备发送心跳信息,其中,所述心跳信息包括内存占用率和中央处理器占用率;
第二子单元,用于所述主设备根据所述心跳信息判断所述代理节点中服务进程的实时状态;
第三子单元,用于当所述代理节点中服务进程内存占用率超过第一预设阈值或中央处理器占用率超过第二预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过多;
第四子单元,用于当所述代理节点中服务进程内存占用率低于第三预设阈值或中央处理器占用率低于第四预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过剩。
进一步地,所述第四处理模块还包括:
第五子单元,用于当所述代理节点中服务进程的所述实时状态为负荷过多,且所述代理节点中服务进程不存在所述备用服务进程时,启用所述备用服务进程,基于所述备用服务进程输出所述数据;
第六子单元,用于当所述代理节点中服务进程的所述实时状态为负荷过剩,且所述消息队列采用Kafka时,根据Kafka group id,采用数据均衡落地的方式输出所述数据。
进一步地,所述第一处理模块包括:
第七子单元,用于通过预架设的配置服务中心提供多数据源接入的服务,其中,所述预架设的配置服务中心采用前端界面的方式进行操作;
第八子单元,通过所述前端界面获取用户输入的所述日志规则,按照所述日志规则和所述多数据源接入的服务,从多个数据源中采集所述数据,并将所述数据发送到Kafka。
进一步地,所述第三处理模块包括:
第九子单元,用于通过预架设的数据服务中心提供数据统一接口;
第十子单元,用于根据所述数据统一接口,将所述数据从所述分布式数据中台输出到同一非易失性存储介质。
第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于Flume数据中台的数据处理方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包括:计算机程序,所述计算机程序被处理器执行时实现上述基于Flume数据中台的数据处理方法的步骤。
在本发明实施例中,首先获取日志规则,按照日志规则采集数据,并将数据发送到消息队列,能够将采集的数据有序、格式统一地输出到下一接收设备中;然后通过消息队列将数据输入到分布式数据中台,其中,分布式数据中台包括主设备,以及多个分布式集群,每个分布式集群中包括多个从设备,作为分布式集群的代理节点,分布式数据中台基于Flume实现,在具备Flume集群优点的前提下,将主设备作为分布式数据中台的根节点与各代理节点连接,以实时对个代理节点进行监测,为后续数据的不同输出方式的实现提供了技术基础;最后,将数据从分布式数据中台输出到存储介质,其中,在数据从分布式数据中台输出到存储介质的过程中,主设备采用主从心跳机制,检测代理节点中服务进程的实时状态,并根据实时状态启用备用服务进程,基于备用服务进程输出数据,或者,根据实时状态,采用数据均衡落地的方式输出数据,能够根据代理节点中服务进程的实时状态决定数据输出的方式,从而有效降低存储空间的占用率。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一实施例中基于Flume数据中台的数据处理方法的一流程图;
图2是本发明一实施例中基于Flume数据中台的数据处理的系统架构图;
图3是本发明一实施例中基于Flume数据中台的数据处理装置的一示意图;
图4是本发明一实施例中计算机设备的一示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的相同的字段,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1示出本实施例中基于Flume数据中台的数据处理方法的一流程图。该基于Flume数据中台的数据处理方法可应用在基于Flume数据中台的数据处理系统上,在进行海量数据处理(主要是指采集数据和输出数据)时可采用该基于Flume数据中台的数据处理系统实现。该基于Flume数据中台的数据处理系统具体可应用在计算机设备上,其中,该计算机设备是可与用户进行人机交互的设备,包括但不限于电脑、智能手机和平板等设备。
如图1所示,基于Flume数据中台的数据处理方法包括如下步骤:
S10:获取日志规则,按照日志规则采集数据,并将数据发送到消息队列。
其中,日志规则具体可以基于日志字段信息、日志字段间分隔符或日志行间分隔符实现。基于Flume数据中台的数据处理系统通过获取用户输入的日志规则,可根据用户选择的日志字段信息对待采集数据进行筛选,并按照设定的日志字段间分隔符、日志行间分隔符将不同日志级别类型的待采集数据进行划分,并将采集数据按照日志字段间分隔符、日志行间分隔符所设定的数据格式输出,可使得采集的数据在数据格式上整齐且统一。在一实施例中,基于Flume数据中台的数据处理系统将按照日志规则采集数据,该采集的数据符合日志规则预期的数据格式。在采集数据后,将数据统一发送到消息队列,以利用将该消息队列作为消息通信的部件,将数据有序传输到下一接收设备中。可以理解地,采集数据的数据源可以包括web(网页)、file(文件)或Kafka(属于消息队列)等多种不同的数据源,其中,消息队列可作为消息通信的部件。在本实施例中,将采集的数据统一发送到消息队列中,可以保证采集的数据顺利、有序地输出到下一接收设备中。
进一步地,在步骤S10中,获取日志规则,按照日志规则采集数据,并将数据发送到消息队列,具体包括如下步骤:
S11:通过预架设的配置服务中心提供多数据源接入的服务,其中,预架设的配置服务中心采用前端界面的方式进行操作。
其中,配置服务中心(config server)是微服务架构中的应用,可统一配置管理不同的项目环境,包括对不同类型的数据的统一管理。在一实施例中,可在前端界面(如网页页面)提供配置服务的操作,用户通过在预架设的配置中心进行数据的统一配置,可适配不同接入的数据源。可以理解地,现有的数据采集做法一般是通过修改配置文件来实现不同接入数据源的配置,这种做法只能接收单一源的数据,例如只能接收web、file或Kafka其中一数据源中的数据,且每次更改不同数据源的接入都需要繁琐的流程。在一实施例中,通过架设具有配置服务中心功能的网页服务,可根据用户在配置服务中心的统一配置管理,实现多数据源的同时接入。
S12:通过前端界面获取用户输入的日志规则,按照日志规则和多数据源接入的服务,从多个数据源中采集数据,并将数据发送到Kafka。
其中,Kafka是一种高吞吐量的分布式发布订阅消息系统,其能够统一线上和离线的消息处理,可通过集群提供实时的消息。
在一实施例中,用户还可通过前端界面获取日志规则。基于Flume数据中台的数据处理系统将按照日志规则和配置服务中心提供的多数据接入的服务,同时在不同的数据源中采集数据,并将采集的数据发送到Kafka中,以利用该Kafka实现高吞吐量的、分布式的数据处理功能,将数据传输到下一接收设备中。
在步骤S11-S12中,通过预架设的配置服务中心实现多数据源接入的服务,以及用户在前端界面输入的日志规则,实现数据源接入的多样化,对数据采集实现统一配置的管理,有效提高了数据采集的效率。
S20:通过消息队列将数据输入到分布式数据中台,其中,分布式数据中台包括主设备,以及多个分布式集群,每个分布式集群中包括多个从设备,作为分布式集群的代理节点,分布式数据中台基于Flume实现。
其中,数据中台是指通过数据技术,对海量数据进行采集、计算、存储、加工,形成大数据资产层,进而为客户提供高效服务的技术。Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统,Flume一般以集群的方式存在。
在一实施例中,分布式数据中台以Flume的框架为基础建立,具有目前Flume集群的优点。与现有技术不同的是,本实施例将分布式数据中台设置为主从设备的架构。在该分布式数据中台中,包括主设备和多个从设备,其中,从设备构建了多个分布式集群,一个分布式集群中包括至少两个从设备。从设备作为分布式集群的代理节点。可以理解地,主设备、从设备具体可以是指电脑、手机、平板等电子设备,主设备作为分布式数据中台的根节点与各代理节点连接,以实时对个代理节点进行监测,为后续数据的不同输出方式的实现提供了技术基础。
S30:将数据从分布式数据中台输出到存储介质。
在一实施例中,传统的Flume集群数据输出到单一的存储介质(例如file/hdfs/kafka等)。存储介质的数据接收设备需要针对不同的数据编写不同调取接口,以实现数据输出。
进一步地,在步骤S30中,将数据从分布式数据中台输出到存储介质,具体包括如下步骤:
S31:通过预架设的数据服务中心提供数据统一接口。
对于不同数据的存储介质的差异性,本实施例中采用数据服务中心(dataserver)取代单独编写不同的接口来调取数据的传统方式。该预架设的数据服务中心具体采用守护进程(deamon)的方法实现,对外提供数据访问的统一接口。该数据服务中心是一个网页服务,通过HTTP协议交互,使用方通过HTTP API方式请求数据,服务方后台处理完返回。其中,守护进程是一类在后台运行的特殊进程,用于执行特定的系统任务。在一实施例中,采用守护进程的方式在后台让数据接收设备基于HTTP协议交互,通过对外提供数据访问的统一接口请求数据,以将数据统一输出到存储介质中。
S32:根据数据统一接口,将数据从分布式数据中台输出到同一非易失性存储介质。
在一实施例中,存储介质采用非易失性存储介质,例如HDFS(Hadoop DistributedFile System,Hadoop分布式文件系统)。HDFS是永久存储的存储介质,跟file、kafka不一样。HDFS具有高可用、多副本集存储作用,可以提供数据存储的安全性。
在步骤S31-S32中,通过预架设的数据服务中心实现数据的统一输出,能够显著提高数据处理的效率。
S40:在数据从分布式数据中台输出到存储介质的过程中,主设备采用主从心跳机制,检测代理节点中服务进程的实时状态,并根据实时状态启用备用服务进程,基于备用服务进程输出数据,或者,根据实时状态,采用数据均衡落地的方式输出数据。
其中,心跳机制是定时发送一个自定义的结构体(心跳包),让其他设备知道自己还在线,以确保连接的有效性的机制。
其中,实时状态是指能够反映设备性能的参数数据。
可以理解地,每个代理节点可对应于一个个的数据接入的服务进程,不同的代理节点共同实现分布式的数据处理(数据接入、数据输出)。
在一实施例中,该分布式数据中台以心跳机制为基础实现主从设备之间的通信。可以理解地,采用该心跳机制能够更好地检测设备异常,及时告警和提示修复,能够有效提高设备运行的稳定性。需要说明的是,该分布式数据中台采用的心跳机制不仅是用于检测设备间的连接是否有效,还用于将从设备的实时状态传输到主设备,以让主设备能够根据代理节点中服务进程的实时状态决定数据输出的方式。
进一步地,在步骤S40中,在数据从分布式数据中台输出到存储介质的过程中,主设备采用主从心跳机制,检测代理节点中服务进程的实时状态,具体包括如下步骤:
S411:代理节点定时向主设备发送心跳信息,其中,心跳信息包括内存占用率和中央处理器占用率。
在一实施例中,代理节点在每隔一段时间后,将发送心跳信息给主设备,具体,主从设备之间完成心跳信息的传输可通过ZeroMQ消息队列等方式实现,能够保证心跳信息稳定、准确地完成传输。
进一步地,该心跳信息除了用于检测设备是否在线的心跳包之外,还包括内存占用率和中央处理器(CPU)占用率等反映从设备性能的参数数据。可以理解地,通过主从设备的架构以及心跳机制,主设备可以近实时地检测到各代理节点(从设备)的性能使用率,以确定采用的数据输出的方式。
S412:主设备根据心跳信息判断代理节点中服务进程的实时状态。
可以理解地,心跳信息中包括内存占用率和中央处理器占用率等反映从设备性能的参数数据,主设备可根据这些参数数据判断代理节点中服务进程的实时状态。
S413:当代理节点中服务进程内存占用率超过第一预设阈值或中央处理器占用率超过第二预设阈值时,确定代理节点中服务进程的实时状态为负荷过多。
可以理解地,在该基于Flume实现的分布式数据中台中,不同的从设备的性能使用率是不同的,在同一时刻,从设备A可能处于负荷过多的状态,而从设备B则处于负荷过剩的状态。具体地,当代理节点中服务进程内存占用率超过第一预设阈值或中央处理器占用率超过第二预设阈值时,认为该代理节点运行的压力较大,属于负荷过多的实时状态。
S414:当代理节点中服务进程内存占用率低于第三预设阈值或中央处理器占用率低于第四预设阈值时,确定代理节点中服务进程的实时状态为负荷过剩。
可以理解地,当代理节点中服务进程内存占用率低于第三预设阈值或中央处理器占用率低于第四预设阈值时,认为该代理节点运行的压力较小,属于负荷过多的实时状态。
可以理解地,负荷过多或者负荷过剩都是不好的,负荷过多说明服务进程有崩掉的风险,此时建议备份,负荷过剩说明资源用的不充分,浪费资源。
在步骤S411-S414中,从内存占用率和中央处理器占用率等反映从设备性能的参数数据出发确定代理节点的实时状态,以根据各代理节点的实时相应地选择数据输出的方式。
进一步地,在步骤S40中,根据实时状态启用备用服务进程,基于备用服务进程输出数据,或者,根据实时状态,采用数据均衡落地的方式输出数据,具体包括如下步骤:
S41:当代理节点中服务进程的实时状态为负荷过多,且代理节点中服务进程不存在备用服务进程时,启用备用服务进程,基于备用服务进程输出数据;
可以理解地,现有技术中的数据中台是通过进程直连数据源的方式获取数据,当一个进程异常退出时,数据中台无法及时告警、修复,容易出现数据丢失的情况。因此,在数据中台实现数据处理的过程中,为了保证数据不丢失,数据中台的服务进程中都落地了相同的一份数据,也即启用了备用服务进程。
在一实施例中,代理节点是否启用备用服务进程不是硬性规定的,当代理节点中服务进程的实时状态为负荷过多时,代理节点将检测其服务进程中是否存在备用服务进程,若不存在,鉴于负荷过多可能导致服务进程有崩掉的风险、造成数据丢失,本实施例将启用备用服务进程,并在启动备用服务进程的数据备份保护下输出数据。可以理解地,备用服务进程占用的是存储空间,而对内存、CPU的占用率并没有较大的影响,可以在代理节点负荷过多的实时状态下保持数据传输的安全性和稳定性。
S42:当代理节点中服务进程的实时状态为负荷过剩,且消息队列采用Kafka时,根据Kafka group id,采用数据均衡落地的方式输出数据。
其中,根据Kafka group id,采用数据均衡落地的方式输出数据是Kafka数据输出的一种机制。在本实施例中,采用该Kafka group id可以在不启用备用服务进程的情况下,将数据严格按照Kafka group id输出,保证数据的完整性和稳定性。在代理节点中服务进程的实时状态为负荷过剩时,可牺牲一部分的性能,根据Kafka group id严格分批地输出数据,能够显著减少存储空间的存储压力,同时也保证数据准确、有序地输出。
可以理解地,随着硬件设备性能的提升,一般情况下设备的实时状态多为负荷过剩。在分布式集群的架构中,由于不同代理节点均备份了服务进程,将造成较大的数据冗余情况(现今数据采集的量都比较大),造成存储空间的浪费。采用本实施例数据均衡落地的方式,能够在不采用备份服务进程的情况下实现保证数据的完整性和稳定性,解放存储空间。
在步骤S41-S42中,根据负荷过多和负荷过剩两种实时状态采用了不同的数据输出方式,可在保证数据传输准确的前提下尽可能地提高存储空间。
在一实施例中,基于Flume数据中台的数据处理的系统架构图如图2所示。
从图2中可以看到,在通过配置服务中心提供的多种源数据接入的场景下,可接收不同数据源的数据,并将数据按(日志规则)转换成统一的格式,发送到Kafk。在实现接收不同数据源的数据后,将通过HA高可用集群(由至少两个代理节点组成)实现分布式的数据接入进程,每个AGENT代理节点对应于一个个的数据接入进程。其中,在数据接入进程中,HA高可用集群采用了主从设备的心跳机制,可实时检测服务进程的状态,确保异常被及时告知,以及及时启动备用进程,防止数据丢失。最后,将根据数据配置中心提供统一的数据获取接口,能够不需要考虑存储介质的差异性,不用单独编写不同的接口便实现数据的调取。本发明实施例通过配置服务的方式,简化了数据源接入的复杂性,统一了数据格式;通过数据服务的方式,标准化数据调取的接口,屏蔽了存储介质的差异性,显著减少数据分析开发流程难度;通过心跳机制,基于Flume架构的实时数据中台能够更好地检测异常,及时告警和提示修复,有效提高设备运行的稳定性;通过kafka group id的部署方式,大大减少了如HDFS存储介质的存储空间。
在本发明实施例中,首先获取日志规则,按照日志规则采集数据,并将数据发送到消息队列,能够将采集的数据有序、格式统一地输出到下一接收设备中;然后通过消息队列将数据输入到分布式数据中台,其中,分布式数据中台包括主设备,以及多个分布式集群,每个分布式集群中包括多个从设备,作为分布式集群的代理节点,分布式数据中台基于Flume实现,在具备Flume集群优点的前提下,将主设备作为分布式数据中台的根节点与各代理节点连接,以实时对个代理节点进行监测,为后续数据的不同输出方式的实现提供了技术基础;最后,将数据从分布式数据中台输出到存储介质,其中,在数据从分布式数据中台输出到存储介质的过程中,主设备采用主从心跳机制,检测代理节点中服务进程的实时状态,并根据实时状态启用备用服务进程,基于备用服务进程输出数据,或者,根据实时状态,采用数据均衡落地的方式输出数据,能够根据代理节点中服务进程的实时状态决定数据输出的方式,从而有效降低存储空间的占用率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
基于实施例中所提供的基于Flume数据中台的数据处理方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
图3示出与实施例中基于Flume数据中台的数据处理方法一一对应的基于Flume数据中台的数据处理装置的原理框图。如图3所示,该基于Flume数据中台的数据处理装置包括第一处理模块10、第二处理模块20、第三处理模块30和第四处理模块40。其中,第一处理模块10、第二处理模块20、第三处理模块30和第四处理模块40的实现功能与实施例中基于Flume数据中台的数据处理方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
第一处理模块10,用于获取日志规则,按照日志规则采集数据,并将数据发送到消息队列。
第二处理模块20,用于通过消息队列将数据输入到分布式数据中台,其中,分布式数据中台包括主设备,以及多个分布式集群,每个分布式集群中包括多个从设备,作为分布式集群的代理节点,分布式数据中台基于Flume实现。
第三处理模块30,用于将数据从分布式数据中台输出到存储介质。
第四处理模块40,用于在数据从分布式数据中台输出到存储介质的过程中,主设备采用主从心跳机制,检测代理节点中服务进程的实时状态,并根据实时状态启用备用服务进程,基于备用服务进程输出数据,或者,根据实时状态,采用数据均衡落地的方式输出数据。
进一步地,第四处理模块40包括:
第一子单元,用于代理节点定时向主设备发送心跳信息,其中,心跳信息包括内存占用率和中央处理器占用率;
第二子单元,用于主设备根据心跳信息判断代理节点中服务进程的实时状态;
第三子单元,用于当代理节点中服务进程内存占用率超过第一预设阈值或中央处理器占用率超过第二预设阈值时,确定代理节点中服务进程的实时状态为负荷过多;
第四子单元,用于当代理节点中服务进程内存占用率低于第三预设阈值或中央处理器占用率低于第四预设阈值时,确定代理节点中服务进程的实时状态为负荷过剩。
进一步地,第四处理模块40还包括:
第五子单元,用于当代理节点中服务进程的实时状态为负荷过多,且代理节点中服务进程不存在备用服务进程时,启用备用服务进程,基于备用服务进程输出数据;
第六子单元,用于当代理节点中服务进程的实时状态为负荷过剩,且消息队列采用Kafka时,根据Kafka group id,采用数据均衡落地的方式输出数据。
进一步地,第一处理模块10包括:
第七子单元,用于通过预架设的配置服务中心提供多数据源接入的服务,其中,预架设的配置服务中心采用前端界面的方式进行操作;
第八子单元,通过前端界面获取用户输入的日志规则,按照日志规则和多数据源接入的服务,从多个数据源中采集数据,并将数据发送到Kafka。
进一步地,第三处理模块30包括:
第九子单元,用于通过预架设的数据服务中心提供数据统一接口;
第十子单元,用于根据数据统一接口,将数据从分布式数据中台输出到同一非易失性存储介质。
在本发明实施例中,首先获取日志规则,按照日志规则采集数据,并将数据发送到消息队列,能够将采集的数据有序、格式统一地输出到下一接收设备中;然后通过消息队列将数据输入到分布式数据中台,其中,分布式数据中台包括主设备,以及多个分布式集群,每个分布式集群中包括多个从设备,作为分布式集群的代理节点,分布式数据中台基于Flume实现,在具备Flume集群优点的前提下,将主设备作为分布式数据中台的根节点与各代理节点连接,以实时对个代理节点进行监测,为后续数据的不同输出方式的实现提供了技术基础;最后,将数据从分布式数据中台输出到存储介质,其中,在数据从分布式数据中台输出到存储介质的过程中,主设备采用主从心跳机制,检测代理节点中服务进程的实时状态,并根据实时状态启用备用服务进程,基于备用服务进程输出数据,或者,根据实时状态,采用数据均衡落地的方式输出数据,能够根据代理节点中服务进程的实时状态决定数据输出的方式,从而有效降低存储空间的占用率。
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例中基于Flume数据中台的数据处理方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器执行时实现实施例中基于Flume数据中台的数据处理装置中各模块/单元的功能,为避免重复,此处不一一赘述。
图4是本发明一实施例提供的计算机设备的示意图。如图4所示,该实施例的计算机设备50包括:处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序53,该计算机程序53被处理器51执行时实现实施例中的基于Flume数据中台的数据处理方法,为避免重复,此处不一一赘述。或者,该计算机程序53被处理器51执行时实现实施例中基于Flume数据中台的数据处理装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备50可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备50可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图4仅仅是计算机设备50的示例,并不构成对计算机设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器52可以是计算机设备50的内部存储单元,例如计算机设备50的硬盘或内存。存储器52也可以是计算机设备50的外部存储设备,例如计算机设备50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器52还可以既包括计算机设备50的内部存储单元也包括外部存储设备。存储器52用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Flume数据中台的数据处理方法,其特征在于,所述方法包括:
获取日志规则,按照所述日志规则采集数据,并将所述数据发送到消息队列;
通过所述消息队列将所述数据输入到分布式数据中台,其中,所述分布式数据中台包括主设备,以及多个分布式集群,每个所述分布式集群中包括多个从设备,作为所述分布式集群的代理节点,所述分布式数据中台基于Flume实现;
将所述数据从所述分布式数据中台输出到存储介质;
其中,在所述数据从所述分布式数据中台输出到所述存储介质的过程中,所述主设备采用主从心跳机制,检测所述代理节点中服务进程的实时状态,并根据所述实时状态启用备用服务进程,基于所述备用服务进程输出所述数据,或者,根据所述实时状态,采用数据均衡落地的方式输出所述数据。
2.根据权利要求1所述的方法,其特征在于,所述在所述数据从所述分布式数据中台输出到所述存储介质的过程中,所述主设备采用主从心跳机制,检测所述代理节点中服务进程的实时状态,包括:
所述代理节点定时向所述主设备发送心跳信息,其中,所述心跳信息包括内存占用率和中央处理器占用率;
所述主设备根据所述心跳信息判断所述代理节点中服务进程的实时状态;
当所述代理节点中服务进程内存占用率超过第一预设阈值或中央处理器占用率超过第二预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过多;
当所述代理节点中服务进程内存占用率低于第三预设阈值或中央处理器占用率低于第四预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过剩。
3.根据权利要求2所述的方法,其特征在于,所述根据所述实时状态启用备用服务进程,基于所述备用服务进程输出所述数据,或者,根据所述实时状态,采用数据均衡落地的方式输出所述数据,包括:
当所述代理节点中服务进程的所述实时状态为负荷过多,且所述代理节点中服务进程不存在所述备用服务进程时,启用所述备用服务进程,基于所述备用服务进程输出所述数据;
当所述代理节点中服务进程的所述实时状态为负荷过剩,且所述消息队列采用Kafka时,根据Kafka group id,采用数据均衡落地的方式输出所述数据。
4.根据权利要求1所述的方法,其特征在于,所述获取日志规则,按照所述日志规则采集数据,并将所述数据发送到消息队列,包括:
通过预架设的配置服务中心提供多数据源接入的服务,其中,所述预架设的配置服务中心采用前端界面的方式进行操作;
通过所述前端界面获取用户输入的所述日志规则,按照所述日志规则和所述多数据源接入的服务,从多个数据源中采集所述数据,并将所述数据发送到Kafka。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述数据从所述分布式数据中台输出到存储介质,包括:
通过预架设的数据服务中心提供数据统一接口;
根据所述数据统一接口,将所述数据从所述分布式数据中台输出到同一非易失性存储介质。
6.一种基于Flume数据中台的数据处理装置,其特征在于,所述装置包括:
第一处理模块,用于获取日志规则,按照所述日志规则采集数据,并将所述数据发送到消息队列;
第二处理模块,用于通过所述消息队列将所述数据输入到分布式数据中台,其中,所述分布式数据中台包括主设备,以及多个分布式集群,每个所述分布式集群中包括多个从设备,作为所述分布式集群的代理节点,所述分布式数据中台基于Flume实现;
第三处理模块,用于将所述数据从所述分布式数据中台输出到存储介质;
第四处理模块,用于在所述数据从所述分布式数据中台输出到所述存储介质的过程中,所述主设备采用主从心跳机制,检测所述代理节点中服务进程的实时状态,并根据所述实时状态启用备用服务进程,基于所述备用服务进程输出所述数据,或者,根据所述实时状态,采用数据均衡落地的方式输出所述数据。
7.根据权利要求6所述的装置,其特征在于,所述第四处理模块包括:
第一子单元,用于所述代理节点定时向所述主设备发送心跳信息,其中,所述心跳信息包括内存占用率和中央处理器占用率;
第二子单元,用于所述主设备根据所述心跳信息判断所述代理节点中服务进程的实时状态;
第三子单元,用于当所述代理节点中服务进程内存占用率超过第一预设阈值或中央处理器占用率超过第二预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过多;
第四子单元,用于当所述代理节点中服务进程内存占用率低于第三预设阈值或中央处理器占用率低于第四预设阈值时,确定所述代理节点中服务进程的所述实时状态为负荷过剩。
8.根据权利要求6所述的装置,其特征在于,所述第四处理模块还包括:
第五子单元,用于当所述代理节点中服务进程的所述实时状态为负荷过多,且所述代理节点中服务进程不存在所述备用服务进程时,启用所述备用服务进程,基于所述备用服务进程输出所述数据;
第六子单元,用于当所述代理节点中服务进程的所述实时状态为负荷过剩,且所述消息队列采用Kafka时,根据Kafka group id,采用数据均衡落地的方式输出所述数据。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述基于Flume数据中台的数据处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于Flume数据中台的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010579722.2A CN111813621A (zh) | 2020-06-23 | 2020-06-23 | 基于Flume数据中台的数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010579722.2A CN111813621A (zh) | 2020-06-23 | 2020-06-23 | 基于Flume数据中台的数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111813621A true CN111813621A (zh) | 2020-10-23 |
Family
ID=72845549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010579722.2A Pending CN111813621A (zh) | 2020-06-23 | 2020-06-23 | 基于Flume数据中台的数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813621A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988679A (zh) * | 2021-03-18 | 2021-06-18 | 北京大米科技有限公司 | 日志采集控制方法、装置、存储介质及服务器 |
-
2020
- 2020-06-23 CN CN202010579722.2A patent/CN111813621A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988679A (zh) * | 2021-03-18 | 2021-06-18 | 北京大米科技有限公司 | 日志采集控制方法、装置、存储介质及服务器 |
CN112988679B (zh) * | 2021-03-18 | 2024-04-12 | 北京大米科技有限公司 | 日志采集控制方法、装置、存储介质及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253347A1 (zh) | 一种容器集群管理方法、装置及系统 | |
CN107493310B (zh) | 一种云资源处理方法及云管理平台 | |
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
US11755452B2 (en) | Log data collection method based on log data generated by container in application container environment, log data collection device, storage medium, and log data collection system | |
EP3499800A1 (en) | Microservice configuration apparatus and method | |
EP3281360B1 (en) | Virtualized network function monitoring | |
CN108370341B (zh) | 资源配置方法、虚拟网络功能管理器和网元管理系统 | |
CN111913818B (zh) | 一种确定服务间依赖关系的方法及相关装置 | |
US10944655B2 (en) | Data verification based upgrades in time series system | |
CN114741060B (zh) | 基于中台的业务系统开发方法及装置 | |
CN111064626B (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
CN109873714B (zh) | 云计算节点配置更新方法及终端设备 | |
CN114363144B (zh) | 一种面向分布式系统的故障信息关联上报方法及相关设备 | |
CN110138753B (zh) | 分布式消息服务系统、方法、设备及计算机可读存储介质 | |
CN106375102A (zh) | 一种服务注册方法、使用方法及相关装置 | |
CN111813621A (zh) | 基于Flume数据中台的数据处理方法、装置、设备及介质 | |
CN110113269B (zh) | 一种基于中间件的流量控制的方法及相关装置 | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
CN113032054B (zh) | 一种服务执行方法、装置、存储介质及电子装置 | |
CN111556043B (zh) | 一种报文处理方法、装置、系统、设备及可读存储介质 | |
CN114756301A (zh) | 日志处理方法、装置和系统 | |
CN111510480A (zh) | 一种请求发送方法、装置以及第一服务器 | |
CN112433862A (zh) | 一种数据聚合实现系统及设备 | |
CN114598705B (zh) | 消息负载均衡方法、装置、设备和介质 | |
CN115643558B (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 |