一种分布式实时计算系统中计数对账的方法及装置制造方法及图纸

技术编号:14684650 阅读:136 留言:0更新日期:2017-02-22 18:16
本发明专利技术公开一种分布式实时计算系统中计数对账的方法,其实现了实时计算中计数对账过程中时间维度的可控性,规避mysql锁争用问题。该方法包括:(1)创建存储spout和bolt计数的数据库表;(2)spout处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(3)bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(4)topology部署到storm集群,终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作。还有分布式实时计算系统中计数对账的装置。

【技术实现步骤摘要】

本专利技术涉及大数据处理的
,尤其涉及一种分布式实时计算系统中计数对账的方法,以及分布式实时计算系统中计数对账的装置。
技术介绍
实时计算系统的一种常用技术架构是Kafka(Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。)+Storm(一种分布式实时计算系统)。从数据源接入数据,写入Kafka,Storm从kafka中获取数据,进行计算处理。对数据处理质量要求较高的场景下,会衍生出各个系统数据统计对账的需求,用来发现和分析系统处理数据过程中潜在的问题。各环节数据对账如下:1、数据源准备了多少数据。2、从数据源读取数据写入kafka的过程中处理了多少数据。3、Storm处理过程中,组件spout(数据源,源源不断的发送元组数据Tuple)、bolt(消费Tuple的节点。消费后可能会排出新的Tuple到该Stream上,也可能会排到到其他Stream,也或者根本不排。可并发。)处理了多少数据。现有的技术方案为:利用StormUI(用户界面)展示spout,bolt处理数据量。这样展示的信息有限,不能满足特殊需求。具体地,根据实际业务需求,如果上游每天有n批含时间戳的数据,需要实时的对各批次数据进行对账:包括数据源与spout处理的数据量对账以及spout与bolt处理的数据量对账。而现有的StormUI只能展示topology(将Spout、Bolt整合起来的拓扑图。定义了Spout和Bolt的结合关系、并发数量、配置等等。)启动以来spout和bolt组件10m(分钟)、3h(小时)、1d(天)、alltime(全部时间)处理的数据量,无法区分具体批次和其它时间粒度下数据处理的情况,而且一旦topology重新启动,StormUI展示的数据处理信息又重新计算,导致无法查看历史数据。
技术实现思路
为克服现有技术的缺陷,本专利技术要解决的技术问题是提供了一种分布式实时计算系统中计数对账的方法,其实现了实时计算中计数对账过程中时间维度的可控性,规避mysql锁争用问题。本专利技术的技术方案是:这种分布式实时计算系统中计数对账的方法,该方法包括以下步骤:(1)创建存储spout和bolt计数的数据库表;(2)spout处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(3)bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(4)topology部署到storm集群,终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作。本专利技术在spout和bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库,topology部署到storm集群,终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作,从而实现了实时计算中计数对账过程中时间维度的可控性,规避mysql锁争用问题。还提供了一种分布式实时计算系统中计数对账的装置,该装置包括:创建模块,其配置来创建存储spout和bolt计数的数据库表;spout处理模块,其配置来在spout处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;bolt处理模块,其配置来在bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;topology部署模块,其配置来将topology部署到storm集群,在终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作。附图说明图1所示为根据本专利技术的分布式实时计算系统中计数对账的方法的流程图。具体实施方式如图1所示,这种分布式实时计算系统中计数对账的方法,该方法包括以下步骤:(1)创建存储spout和bolt计数的数据库表;(2)spout处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(3)bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(4)topology部署到storm集群,终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作。本专利技术在spout和bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库,topology部署到storm集群,终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作,从而实现了实时计算中计数对账过程中时间维度的可控性,规避mysql锁争用问题。另外,所述步骤(2)中,对storm-kafka源码中spout部分代码进行修改,另起一个线程对spout处理的数据进行实时计数并且定时刷新到数据库中,计数用map数据结构类型,在对其读写操作时对map进行加锁控制。另外,对于相同批次数据的计数进行更新操作,否则进行插入操作。另外,采用组件componentID+taskID+批次时间戳,作为数据库表主键。由于数据处理过程是分布式的,因此会涉及到同一批次数据的计数在进行数据库更新操作时产生锁争用的问题,导致计数不准确,采用组件componentID+taskID+批次时间戳作为数据库表主键,来规避这个问题。另外,所述步骤(3)中,对bolt-kafka源码中bolt部分代码进行修改,另起一个线程对bolt处理的数据进行实时计数并且定时刷新到数据库中,计数用map数据结构类型,在对其读写操作时对map进行加锁控制。另外,对于相同批次数据的计数进行更新操作,否则进行插入操作。另外,采用组件componentID+taskID+批次时间戳,作为数据库表主键。由于数据处理过程是分布式的,因此会涉及到同一批次数据的计数在进行数据库更新操作时产生锁争用的问题,导致计数不准确,采用组件componentID+taskID+批次时间戳作为数据库表主键,来规避这个问题。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本专利技术的方法相对应的,本专利技术还同时包括一种分布式实时计算系统中计数对账的装置,该装置通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的装置,该装置包括:创建模块,其配置来创建存储spout和bolt计数的数据库表;spout处理模块,其配置来在spout处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;bolt处理模块,其配置来在bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;topology部署模块,其配置来将topology部署到storm集群,在终止topolog本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201610889993.html" title="一种分布式实时计算系统中计数对账的方法及装置原文来自X技术">分布式实时计算系统中计数对账的方法及装置</a>

【技术保护点】
一种分布式实时计算系统中计数对账的方法,其特征在于:该方法包括以下步骤:(1)创建存储spout和bolt计数的数据库表;(2)spout处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(3)bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(4)topology部署到storm集群,终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作。

【技术特征摘要】
1.一种分布式实时计算系统中计数对账的方法,其特征在于:该方法包括以下步骤:(1)创建存储spout和bolt计数的数据库表;(2)spout处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(3)bolt处理过程中对消息进行计数并定时将计数信息刷新到mysql数据库;(4)topology部署到storm集群,终止topology时在spout的关闭方法和bolt的清除方法中加入刷新数据库的操作。2.根据权利要求1所述的分布式实时计算系统中计数对账的方法,其特征在于:所述步骤(2)中,对storm-kafka源码中spout部分代码进行修改,另起一个线程对spout处理的数据进行实时计数并且定时刷新到数据库中,计数用map数据结构类型,在对其读写操作时对map进行加锁控制。3.根据权利要求2所述的分布式实时计算系统中计数对账的方法,其特征在于:对于相同批次数据的计数进行更新操作,否则进行插入操作。4.根据权利要求3所述的分布式实时计算系统中计数对账的方法,其特征在于:采用组件componentID+taskID+批次时间戳,作为数据库表主键。5.根据权利要求1所述的分布式实时计算系统中计数对账的方法,其特征在于:所述步骤(3)中,对bolt-kafka源码中bolt部分代码进行修改,另起一个线程对bolt处理的数据进行实时计数并且定时刷新到数据库中,计数用map数据结构类型,在对其读写操作时对map进行加锁控制。6.根据权利要求5所述的分布式实时计算系统中计数...

【专利技术属性】
技术研发人员:曾攀范卫卫温宗臣
申请(专利权)人:北京集奥聚合科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1