精华内容
下载资源
问答
  • Storm是一个开源分布式实时计算系统,它可以实时可靠地处理流数据。在Storm出现之前,进行实时处理是非常痛苦的事情,我们主要的时间都花在关注往哪里发消息,从哪里接收消息,消息如何序列化,真正的业务逻辑只占了...
  • 鉴于复杂大气条件下的红外系统作用距离难以精确、实时地计算,提出一种建立红外系统作用距离实时计算系统的方法。通过将MODTRAN软件与基于光谱等分法建立的红外系统作用距离模型有机地结合起来,实现对于MODTRAN软件...
  • 本次演讲我们以滴滴大数据实时监控系统为例,介绍滴滴实时计算系统架构所面临的挑战及相应解决方案。 滴滴大数据实时监控系统服务于滴滴各个业务线,对关键业务指标的变化进行实时监控。研发、产品、运营人员可以...
  • Apache Strom 实时计算系统

    千次阅读 2018-05-26 16:39:41
    Apache Strom 实时计算系统 Storm简介 Apache Storm是一个分布式大数据实时计算系统,Storm设计用于在容错和水平可拓展方法中实时处理大数据,是一个数据流框架,可以使用Storm并行的对实时数据执行各种操作。...

    Apache Strom 实时计算系统

    Storm简介

    Apache Storm是一个分布式大数据实时计算系统,Storm设计用于在容错和水平可拓展方法中实时处理大数据,是一个数据流框架,可以使用Storm并行的对实时数据执行各种操作。相比于Hadoop的批量处理机制,Storm的实时处理机制更适合实时性要求比较高的场景。

    Storm具有以下特点:

    • 支撑各种实时类项目场景,实时处理消息以及更新数据库,基于最基础的实时计算语义,对实时数据进行计算。
    • 高度的可伸缩性,如果需要扩容,直接添加机器即可,调整计算拓扑的并行度就可以了。无缝快速扩容。
    • 高容错性,如果某台机器宕机了,重启后也不会影响作业,保证消息都不丢失。
    • 高健壮性,从历史经验来看,stormhadoopspark等大数据类系统都健壮,因为元数据都保存在zookeeper
    • 对用户友好,核心语义非常简单,开发起来效率很高,并且支持多种变成语言。

    Storm的集群架构

    接下来看看Strom的集群架构,Strom的集群拓扑如下图:

    这里写图片描述

    各种组件的解释如下:

    • NimbusStorm集群主节点,集群中的其他节点成为工作节点,主节点主要负责在工作节点之间分发数据,向工作节点分配任何和监视故障。
    • Supervisor:工作节点叫做Supervisor,工作节点有多个工作进程,管理工作进程以完成由Numbus分配的任务。
    • Worker:工作进程,工作进程会创建执行器,让执行器执行特定的任务,工作进程将有多个执行器。
    • Executor:执行器是工作进程产生的单个线程,执行器运行多个任务。
    • Task:任务执行实际的数据处理,主要输是运行一个计算。所以他是一个Spouts或者Bots
    • Zookeeper frameworkStrom利用Zookeeper维护共享数据之间的协调服务,依赖于Zookeeper来监控工作节点的状态。

    Storm核心概念

    Storm处理数据的过程是从一端读取实时数据的输入流,并将其通过一系列小处理待援,并在另一端输出信息。在Storm中有以下概念:

    • Spouts:数据输入源,通过我们需要实现一个Spouts的接口,尝试在数据源读取数据,比如说在kafka中消费数据。
    • BoltsBolts是逻辑处理单元,数据是Spouts中读取,然后会将数据传递到Bolts中处理,处理之后会把数据传递到另外的一个或多个的Bolts处理。
    • Tuple: 在代码中的一条数据的数据结构,在SpoutsBolts中传递。
    • Steam:数据流的概念,是一个抽象的概念,可以想象为多个Tuple组成一个数据流
    • Topplogy:拓扑,Spouts和多个Bolts连接在一起,组成一个拓扑。拓扑是有向图,定点是计算,边缘是数据流,简单的拓扑从Spouts开始,将数据发射到一个或多个Bolts处理,Bolts表示据欧最小处理逻辑的节点,Bolts的输出可以发射到另一个Bolts作为输入。Strom的工作主要是运行拓扑,开发Storm的工作其实也是开发拓扑。

    一个简单拓扑的结构如下:

    这里写图片描述

    流分组

    上面说到,数据可以从Spouts中流到Bolts,也可以从一个Bolts流到另一个Bolts,其中SpoutsBolts都是独立运行在某一个Task中的,所以说Task的数量就是你Storm集群的并行度,而在这种情况下,怎么决定一个Bolts或者Spouts处理出来的结果,流向另一个Bolts的规则呢?此时需要使用到流分组。流分组是控制数据流向规则的一个东西。Storm中有4个内置的分组:

    • 随机分组(Shuffle Grouping),表示数据随机达到,负载均衡的效果。比如BoltA运行在task1/task2/task3中,而Bolt2运行在task4/task5/task6中,而BoltsA的数据要流向BoltB,则他们的流向为task1->task4/task2->task5/task3->task6
    • 字段分组(Fields Grouping),表示数据按照字段来区分,具有相同字符串的元组将会流向相同的Bolts中处理
    • 全局分组(Global Grouping),所有流可以分组并向前到一个Bolts。此分组将源的所有实例生成的元组发送到单个目标实例(具体来说,选择具有最低ID的工作程序)
    • 所有分组(All Grouping),所有分组将每个元组的单个副本发送到接收Bolts的所有实例。这种分组用于向Bolts发送信号。所有分组对于连接操作都很有用。相当于广播。
    • None Grouping,不分组,目前等同于Shuffle Grouping
    • Direct Grouping直接分组,由Tuple的发射单元直接决定Tuple将发射给那个Bolts,一般情况下是由接收TupleBolts决定接收哪个Bolts发射的Tuple。这是一种比较特别的分组方法,用这种分组意味着消息的发送者指定由消息接收者的哪个Task处理这个消息。 只有被声明为Direct Stream的消息流可以声明这种分组方法。而且这种消息Tuple必须使用emitDirect方法来发射。消息处理者可以通过TopologyContext来获取处理它的消息的taskid (OutputCollector.emit方法也会返回taskid)。

    总结

    本篇文章主要介绍了Storm的一些基本知识,包括集群架构,Storm的核心概念,以及并行度和流分组的相关概念。

    展开全文
  • 大数据实时计算系统实践Flink+Druid配套PPT
  • 开发的输电费用在线实时计算系统利用关系数据库编程语言SQL Server 2000对数据库特别是关口表数据库进行管理,易维护、扩展,数据传输和计算均在服务器端完成,增强了系统安全性和易维护性;采用面向对象的编程语言...
  • 流式计算strom Strom解决的问题 实现实时计算系统要解决那些问题 离线计算是什么 流式计算什么 离线和实时计算区

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程

                        

    1、背景-流式计算与storm

    2011年在海量数据处理领域,Hadoop是人们津津乐道的技术,Hadoop不仅可以用来存储海量数据,还以用来计算海量数据。因为其高吞吐、高可靠等特点,很多互联网公司都已经使用Hadoop来构建数据仓库,高频使用并促进了Hadoop生态圈的各项技术的发展。一般来讲,根据业务需求,数据的处理可以分为离线处理和实时处理,在离线处理方面Hadoop提供了很好的解决方案,但是针对海量数据的实时处理却一直没有比较好的解决方案。
    就在人们翘首以待的时间节点,storm横空出世,与生俱来的分布式、高可靠、高吞吐的特性,横扫市面上的一些流式计算框架,渐渐的成为了流式计算的首选框架。
    如果庞麦郎在的话,他一定会说,这就是我要的滑板鞋!
    这里写图片描述

    在2013年,阿里巴巴开源了基于storm的设计思路使用java重现编写的流式计算框架jstorm。那jstorm是什么呢?
    在jstorm早期的介绍中,一般会出现下面的语句:JStorm 比Storm更稳定,更强大,更快,Storm上跑的程序,一行代码不变可以运行在JStorm上。
    在最新的介绍中,jstorm的团队是这样介绍的:JStorm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个Worker 发生意外故障, 调度器立即分配一个新的Worker替换这个失效的Worker。
    因此,从应用的角度,JStorm 应用是一种遵守某种编程规范的分布式应用。
    从系统角度, JStorm一套类似MapReduce的调度系统。 从数据的角度, 是一套基于流水线的消息处理机制。实时计算现在是大数据领域中最火爆的一个方向,因为人们对数据的要求越来越高,实时性要求也越来越快,传统的Hadoop MapReduce,逐渐满足不了需求,因此在这个领域需求不断。现在,Jstom在淘宝海量的数据和大量的业务场景的锤炼下,从开始的追随者,使用者慢慢的演变成了流式计算技术的领导者。当下,还有很多企业并不知道jstorm,他们的生产环境依然是storm,并且storm也在不断更新,在笔者成文的时间点上,storm发布了1.0的beta版。

    鉴于大多数企业的生产环境还在使用storm,我们学习的目标还是切换到Apache基金会的storm上来。

    2、背景-Storm是为了解决什么样的问题

    伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高。
    举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计这个大哥就要骂娘了。
    再举一个推荐的例子,如果用户昨天在淘宝上买了一双袜子,今天想买一副泳镜去游泳,但是却发现系统在不遗余力地给他推荐袜子、鞋子,根本对他今天寻找泳镜的行为视而不见,估计这哥们心里就会想推荐你妹呀。其实稍微了解点背景知识的码农们都知道,这是因为后台系统做的是每天一次的全量处理,而且大多是在夜深人静之时做的,那么你今天白天做的事情当然要明天才能反映出来啦。

    3、背景-实现实时计算系统需要解决那些问题

    如果让我们自己设计一个实时计算系统,我们要解决哪些问题。
    (1)低延迟:都说了是实时计算系统了,延迟是一定要低的。
    (2)高性能:性能不高就是浪费机器,浪费机器是要受批评的哦。
    (3)分布式:系统都是为应用场景而生的,如果你的应用场景、你的数据和计算单机就能搞定,那么不用考虑这些复杂的问题了。我们所说的是单机搞不定的情况。
    (4)可扩展:伴随着业务的发展,我们的数据量、计算量可能会越来越大,所以希望这个系统是可扩展的。
    (5)容错:这是分布式系统中通用问题。一个节点挂了不能影响我的应用。
    (6)通信:设计的系统需要应用程序开发人员考虑各个处理组件的分布、消息的传递吗?如果是,发人员可能会用不好,也不会想去用。
    (7)消息不丢失:用户发布的一个宝贝消息不能在实时处理的时候给丢了,对吧?

    4、离线计算是什么?

    离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示代表技术:Sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算数据、Hive批量计算数据、***任务调度
    • 1
    • 2

    日常业务:
    1,hivesql
    2、调度平台
    3、Hadoop集群运维
    4、数据清洗(脚本语言)
    5、元数据管理
    6、数据稽查
    7、数据仓库模型架构

    5、流式计算是什么

    流式计算:数据实时产生、数据实时传输、数据实时计算、实时展示代表技术:Flume实时获取数据、Kafka/metaq实时数据存储、Storm/JStorm实时数据计算、Redis实时结果缓存、持久化存储(mysql)。一句话总结:将源源不断产生的数据实时收集并实时计算,尽可能快的得到计算结果,用来支持决策。
    • 1
    • 2
    • 3

    6、离线计算与实时计算的区别

    最大的区别:实时收集、实时计算、实时展示
    • 1

    离线计算,一次计算很多条数据
    实时计算,数据被一条一条的计算

    7、Storm是什么?

    Storm用来实时处理数据,特点:低延迟、高可用、分布式、可扩展、数据不丢失。提供简单容易理解的接口,便于开发。
    • 1

    Spout   Bolt
    数据输入  数据计算      数据输出   数据计算   数据输出
    Spout     Bolt 1….        Bolt N      BoltN+1.     BoltN….

    8、Storm的应用场景

    Storm处理数据的方式是基于消息的流水线处理, 因此特别适合无状态计算,也就是计算单元的依赖的数据全部在接受的消息中可以找到, 并且最好一个数据流不依赖另外一个数据流。
    因此,常常用于
    - 日志分析,从海量日志中分析出特定的数据,并将分析的结果存入外部存储器用来辅佐决策。
    - 管道系统, 将一个数据从一个系统传输到另外一个系统, 比如将数据库同步到Hadoop
    - 消息转化器, 将接受到的消息按照某种格式进行转化,存储到另外一个系统如消息中间件
    - 统计分析器, 从日志或消息中,提炼出某个字段,然后做count或sum计算,最后将统计值存入外部存储器。中间处理过程可能更复杂。

    8.1、案列:一淘-实时分析系统

    一淘-实时分析系统:实时分析用户的属性,并反馈给搜索引擎。最初,用户属性分析是通过每天在云梯上定时运行的MR job来完成的。为了满足实时性的要求,希望能够实时分析用户的行为日志,将最新的用户属性反馈给搜索引擎,能够为用户展现最贴近其当前需求的结果。

    8.2、案列:携程-网站性能监控

    携程-网站性能监控:实时分析系统监控携程网的网站性能。利用HTML5获得可用的指标,并记录日志。Storm集群实时分析日志和入库。使用DRPC聚合成报表,通过历史数据对比等判断规则,触发预警事件。

    8.3、案列:游戏实时运营

    一个游戏新版本上线,有一个实时分析系统,收集游戏中的数据,运营或者开发者可以在上线后几秒钟得到持续不断更新的游戏监控报告和分析结果,然后马上针对游戏的参数 和平衡性进行调整。这样就能够大大缩短游戏迭代周期,加强游戏的生命力。

    8.4、案列:实时计算在腾讯的运用

    实时计算在腾讯的运用:精准推荐(广点通广告推荐、新闻推荐、视频推荐、游戏道具推荐);实时分析(微信运营数据门户、效果统计、订单画像分析);实时监控(实时监控平台、游戏内接口调用)

    8.5、案列:实时计算在阿里的运用

    为了更加精准投放广告,阿里妈妈后台计算引擎需要维护每个用户的兴趣点(理想状态是,你对什么感兴趣,就向你投放哪类广告)。用户兴趣主要基于用户的历史行为、用户的实时查询、用户的实时点击、用户的地理信息而得,其中实时查询、实时点击等用户行为都是实时数据。考虑到系统的实时性,阿里妈妈使用Storm维护用户兴趣数据,并在此基础上进行受众定向的广告投放。

    9、Storm在互联网公司

    本节内容来自《Storm技术内幕与大数据实践》,并得到作者授权使用。
    这里写图片描述
    这里写图片描述 
    这里写图片描述

    11.Strom框架如何获取数据

    Hadoop MapReduce(TextInputFormat\Map\Reduce\TextOutputFormat),由TextInputFormat获取数据。

    Strom中如何获取?
    答:Spout去获取数据。

    Spout去哪里拿数据?数据在哪里?
    答:数据在数据库中,在文件中,在redis中,在任何存储数据的地方。假设存储文件中,1G,Spout一行一行的读取文件中的数据,是在实时读取数据。
    注意:只有数据实时产生,并实时获取才能让storm实时计算框架产生最大的效益。

    12 Storm框架如何实时处理数据

    Hadoop MapReduce(TextInputFormat\Map\Reduce\TextOutputFormat),其中Map\Reduce是计算数据。

    storm中如何计算数据?
    答:在Bolt中进行相关业务逻辑的计算。

    strorm中如果有多个阶段的业务逻辑需要计算,怎么计算?
    答:Bolt1(Map1)—>Bolt2(Reduce1)—>Bolt3(Map1)—>Bolt4(Reduce)

    5、Storm的编程模型是什么?
    答:Spout—>Bolt1—>Bolt2—>Bolt3

                   
    SpoutBolt1Bolt2Bolt3
    获取数据计算计算计算

    13 Storm架构图

    这里写图片描述

    Nimbus:负责资源分配和任务调度。
    Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。
    Worker:运行具体处理组件逻辑的进程。
    Task: worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为executor。

    14.Storm编程模型
    这里写图片描述

    Topology: Storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。
    Spout:在一个topology中产生源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。Spout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用此函数,用户只要在其中生成源数据即可。
    Bolt:在一个topology中接受数据然后执行处理的组件。Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。Bolt是一个被动的角色,其接口中有个execute(Tuple input)函数,在接受到消息后会调用此函数,用户可以在其中执行自己想要的操作。
    Tuple:一次消息传递的基本单元。本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个value list.
    Stream: 源源不断传递的tuple就组成了stream。

               

    浏览人工智能教程

    展开全文
  • 本文重点讲述中信建投证券利用实时计算技术搭建实时计算系统的过程和经验。 关键词:实时计算、实时数据处理、数据同步 1. 概述 1.1 什么是实时计算 实时计算是指对无限数据做无界数据处理,一般都是针对海量数据...

    摘要:实时计算技术已经应用到广告、电商、游戏、文娱等各个领域,比如电商网站实时分析用户属性,基于分析结果给客户推送相关商品;网络游戏实时分析玩家数据,进而对游戏参数和平衡性进行调整。本文重点讲述中信建投证券利用实时计算技术搭建实时计算系统的过程和经验。

    关键词:实时计算、实时数据处理、数据同步

    1. 概述

    1.1 什么是实时计算

       实时计算是指对无限数据做无界数据处理,一般都是针对海量数据进行的,延迟要求为秒级。实时计算主要分为两部分:数据的实时入库和数据的实时计算。
    

    1.2 应用领域

       目前,实时计算技术已经应用到广告、电商、游戏、文娱等各个领域,比如电商网站实时分析用户属性,基于分析结果给客户推送相关商品;网络游戏实时分析玩家数据,进而对游戏参数和平衡性进行调整。
       中信建投证券将其应用到金融领域,搭建了一套实时计算系统,实时汇总客户在股债基、理财、期权、两融、贵金属等业务的资产,为客户提供全方位的资产查询和分析服务。
    

    1.3 实时计算系统简介

       得益于逐渐成熟的实时计算技术,中信建投证券于2018年底建设了实时计算系统,为员工和客户提供实时资产查询服务,2019年又加入了实时盈亏、预期收益、理财资产可用日和可取日、计息天数等指标。
       实时计算系统把客户在集中交易、两融、OTC、期权、黄金五大系统(以下简称“五大系统”)内的数据资产汇总到一起,并与五大系统的数据同步变化。
    

    2. 建设经验

    2.1 系统架构

    五大系统包含的客户数量是千万级别的,如此多的客户,在开市期间的各种操作会产生海量数据,如何在如此大规模数据的条件下满足实时数据处理的需求,是实时计算系统必须要解决的问题。
    开市前,实时计算系统从五大系统采集清算后的T-1日数据作为基础,开市后,实时计算系统采集五大系统变化的数据,加工后将其更新到基础数据里。为了便于理解,笔者在系统原有架构的基础上做了简化,详见图1:

    在这里插入图片描述
    图1 实时计算系统结构图

      图1中实时数据流向如下:
      1. Attunity 从五大系统数据源采集盘中产生的实时数据推送到Kafka;同时,行情转运工具从行情服务获取行情数据,推送到Redis;
      2. 实时计算系统集群的Spark Streaming按先进先出的顺序消费Kafka内的数据;
      3. Spark Streaming将实时数据加工后更新到Redis集群内的基础数据;
      4. 其他系统访问致胜平台上的实时数据接口;
      5. 实时数据接口从Redis集群内获取最新的客户数据,并将其转化为json格式的数据返回给其他系统。
    
      系统建设过程中,项目团队还论证过另一种方案,即直接从五大系统数据库采集数据,汇总后提供给访问者。但经过讨论分析后,发现这种方案存在诸多缺陷:
      1. 由于安全原因,五大系统不能直接暴露数据库给实时计算系统,这就需要五大系统开发专门的接口供实时计算系统使用,接口的开发和维护工作量很大;
      2. 即使五大系统提供了查询接口,接口被调用时,五大系统也要从全部客户的数据里将被查询客户的数据检索出来,而且不止查询一个表,查询效率低下;
      3. 此方案需要专门的服务器来运行,必须要投入一定数量服务器和网络资源,并不比其他方案需要投入的成本低。
    

    2.2 关键技术

    2.2.1 实时数据采集

       系统建设初期,项目团队选择了OGG作为实时数据采集工具。(虽然OGG有很多问题,效率也不高)
       OGG软件是一种基于日志的结构化数据复制软件,能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步。Oracle GoldenGate通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。
       一期系统建设完成后,项目团队发现OGG给运维团队造成了很大的工作量,每次五大系统数据库维护或升级,运维团队都要耗费大量时间来恢复OGG服务。因此,项目团队决定用一个更合适的数据同步工具–Attunity Replicate(简称Attunity)来替换OGG。
       Attunity是一款基于数据库日志的异构数据库变化量同步工具。它采用B/S架构,通过浏览器图形化界面、鼠标点击拖拽的方式进行数据源、目标表的配置和维护,支持包括Oracle、SQLserver、DB2等十几种同构和异构数据库之间的跨平台数据同步。此外,它还支持并行工作,可以自定义并发度,这使得它比OGG延迟更低。
       比于OGG,Attunity部署和维护更简便。Attunity无需在源端或目标端操作系统上安装软件,只需一台独立的服务器安装service,基于WEB的维护页面简单方便,只需要很少的操作即可完成数据同步配置,极大地减少了运维的难度和工作量。
    

    2.2.2 中间数据存储

       五大系统在开市期间产生海量的实时数据,即便是运行在集群上的Spark Streaming也无法在数据产生的瞬间将其完全消费,因此,就需要一个缓冲池来临时存放实时数据。综合各方面因素考虑,实时计算系统选用Kafka作为缓冲池。
       Kafka是一种高吞吐量的分布式发布订阅消息系统。实时计算系统架设了专门的集群来运行Kafka,该集群有足够大的内存空间作为缓冲池存储实时流数据。Attunity 作为生产者,向Kafka实时流数据;Spark Streaming作为消费者。为了保障客户的每一步操作都能精确地同步到实时计算系统,系统严格按照先进先出的方式消费Kafka内的数据。
    

    2.2.3 实时流计算

       因为实时计算系统对时效性要求很高,所以必须有一个能快速处理数据的工具。项目团队选用Spark Streaming来承担数据处理的任务。Spark Streaming是Spark核心API的一个扩展,可以实现高吞吐量且具备容错机制的实时流数据处理功能,这种特性能满足实时计算系统低延时要求。
    

    开市前,实时计算系统先将T-1资产推送到Redis里,开市后,Spark Streaming持续从Kafka里消费数据,然后对其进行处理。Spark Streaming内部的数据处理逻辑如图2:

    在这里插入图片描述

    图2 数据处理逻辑

       图2中的数据处理层Spark Streaming与上下游工具配合,承担了实时流处理的工作。以客户开市期间的一笔股票交易为例,Spark Streaming处理该客户的资产过程简化后如图3:
    

    在这里插入图片描述

    图3股票交易同步逻辑

       接口服务层负责将客户资产按照相关业务规则分类。为了给调用者提供一个大而全的资产汇总数据,系统在接口服务层把客户在五大系统里的资产数据汇总到一起,为每个客户生成了一条以客户号为唯一标识的json数据,返还给调用者。
       接口返回的json数据内包含资产类型按币种划分包含:人民币,美元,港币。其中,有美元和港币资产的客户较少,业务相对简单;有人民币资产的客户较多,业务种类繁多。当上述各类资产单独存在于各自的系统时,资产和负债情况比较简单,无需繁琐计算即可得出其总资产、总负债、净资产等数据,但是如果要把五大系统的资产和负债汇总到一起,就要从全局的角度考虑各种情况,比如:客户在认购场外开放式基金时如何处理普通账户上的在途资产;客户用现金理财产品购买股票时如何修正其可用资金;客户提前赎回理财产品后如何更新其可用资金。为了解决这些复杂的问题,项目团队做了大量的调研和梳理工作,最终形成了一个包含五大系统资产的客户全景资产模型,图4是该模型的中客户人民币资产的内容:
    

    图4客户人民币资产概览

    2.2.4 对外服务接口

       经过Spark Streaming加工汇总的客户数据,需要有一个容量大、响应快的容器来容纳;当需要对外提供数据时,还需要一个高并发的服务平台。中信建投证券自主研发的致胜平台【1】能够满足上述需求,项目团队基于致胜平台开发了一套接口服务。
       致胜平台为实时计算系统分配了一组Redis集群,专门用来存储汇总后的客户数据。为了最大限度的提高Redis集群的吞吐量,数据在Redis集群内以序列化的形式存储。当其他系统调用系统接口时,接口从Redis里抽取相应数据并加工成json格式,返回给调用者。Redis里的数据保持实时更新,接口服务随时等待被调用,两者互不干涉。接口调用示意图见图5:
    

    在这里插入图片描述

    图5接口调用原理

    3. 未来展望

    随着技术的日益发展和项目团队的不断探索,实时计算系统未来还可以应用到更广泛的领域,比如股票实时策略推荐、两融业务实时预警等。中信建投证券将依托于实时计算系统为客户提供全方位的金融服务,其金融科技水平将也迈上一个新的台阶。
    

    【1】:“致胜平台”是遵循统一的技术架构和规范的一整套微服务体系架构,包括技术中台、业务中台和数据中台三个部分,详见文章。

    本文选自《交易技术前沿》总第四十期文章(2020年9月)
    肖钢、李宁、张海园 /中信建投证券信息技术部

    展开全文
  • Storm 实时计算系统

    2019-03-09 22:47:45
    一、Storm概述 1、什么是离线计算 离线计算:批量获取数据、批量...流式计算:数据实时产生、数据实时传输、数据实时计算、实时展示 代表技术:Flume实时获取数据、Kafka实时数据存储、Storm实时数据计算、Red...

    一、Storm概述

    1、什么是离线计算

    离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示

    代表技术:Sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算数据、Hive批量计算数据

    2、什么是流式计算

    流式计算:数据实时产生、数据实时传输、数据实时计算、实时展示

    代表技术:Flume实时获取数据、Kafka实时数据存储、Storm实时数据计算、Redis实时结果缓存、持久化存储(mysql)

    3、Storm是什么

    Storm是一个免费开源的分布式实时计算系统。Storm能轻松可靠地处理无界的数据流。

    4、Storm与Hadoop的区别是什么

    1)Storm用于实时计算,Hadoop用于离线计算。

    2)Storm处理的数据保存在内存中,源源不断;Hadoop处理的数据保存在文件系统中,一批一批处理。

    3)Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。

    5、Storm特点

    1)适用场景广泛:Storm可以适用实时处理消息、更新数据库、持续计算等场景。

    2)可伸缩性高:Storm的可伸缩性可以让Storm每秒处理的消息量达到很高。扩展一个实时计算任务,你所需要做的就是加机器并且提高这个计算任务的并行度。Storm使用Zookeeper来协调机器内的各种配置使得Storm的集群可以很容易的扩展。

    3)保证无数据丢失:Storm保证所有的数据都被处理。、

    4)异常健壮:Storm集群非常容易管理,轮流重启节点不影响应用。

    5)容错性好:在消息处理过程中出现异常,Storm会进行重试。

     

    二、Storm基础知识

    1、 Storm编程模型

    1)元组(Tuple)

    消息传递的基本单元,元组中的字段可以是任何类型的对象,元组支持所有的基本类型、字符串和字节数组作为字段值,只要实现类型的序列化接口就可以使用该类型的对象,元组是一个value的List。

    2)水龙头(Spout)

    Spout是拓扑的流的来源,是一个拓扑中产生源数据流的组件。

    Spout的主要方法是nextTuple()。

    Spout的其他方法是ack()和fail()。当Storm检测到一个元组从Spout发出时,ack()和fail()会被调用,要么成功完成通过拓扑,要么未能完成。Ack()和fail()仅被可靠的Spout调用。

    IRichSpout是Spout必须实现的接口。

    3)转接头(Bolt)

    在拓扑中所有处理都在Bolt中完成,Bolt是流的处理节点,从一个拓扑接收数据,然后执行进行处理的组件。

    Bolt是一个被动的角色,接口中有一个execute()方法,在接收到消息后会调用此方法,用户可以在其中执行自己希望的操作。

    Bolt可以完成简单的流的转换,而完成复杂的流的转换通常需要多个步骤,因此需要多个Bolt。

    4)拓扑(Topology)

    拓扑(Topology)是Storm中运行的一个实时应用程序,因为各个组件间的消息流动而形成逻辑上的拓扑结构。

     

    2、Storm核心组件

    nimbus是整个集群的控管核心,负责topology的提交、运行状态监控、任务重新分配等工作。

    zk就是一个管理者,监控者。

    总体描述:nimbus下命令(分配任务),zk监督执行(心跳监控,worker、supurvisor的心跳都归它管),supervisor领旨(下载代码),招募人马(创建worker和线程等),worker、executor就给我干活!task就是具体要干的活。

     

    3、实时流计算常见架构图

    1)Flume获取数据。

    2)Kafka临时保存数据。

    3)Strom计算数据。

    4)Redis是个内存数据库,用来保存数据。

     

    展开全文
  • Iveely.Computing是参考Storm的分布式实时计算系统的部分原理,用纯Java实现的轻量级、迷你型,适合于搜索引擎的实时计算系统,Iveely 搜索引擎是一款基于Iveely.Computing的搜索引擎,因此部署Iveely.Computing是...
  • 实时计算系统:Storm

    2012-04-16 00:50:13
    Twitter将Storm正式开源了,这是一个分布式的、容错的实时计算系统,它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType开发的实时处理系统,BackType现在已在Twitter麾下。GitHub上的最新...
  • 提出了一种基于嵌入式微处理器配合大规模现场可编程门阵列(FPGA)的动态可重配置结构的星上实时计算系统的体系结构设计,可在一块FPGA资源上通过动态重配置实现不同的信号处理功能。实际应用证明,处理速度和性能...
  • 实时计算系统实时计算场景:伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高。举个搜索场景中的例子,当一个卖家发布了一条...
  • 百分点数据实时计算系统采用了世界领先的Lambda架构设计,提供了一整套技术和方法,在分钟甚至秒级完成对TB级别的数据的计算和查询,包括实时统计报表、实时算法、实时机器学习、交互式查询,几乎涵盖了大部分的数据...
  • Twitter 在 Strange Loop 大会上公布分布式实时计算系统 Storm 的源代码,可以用于各种编程语言,弥补了 Hadoop 实时性的缺失,意义重大。 据了解,Storm 代码来自于 Twitter 上月收购的 BackType,后来被 ...
  • 针对分布式实时系统的特殊性,对分布式实时语言DRTC++编写的分布式实时应用程序,利用 DRTDebug的设计和调试原理,提出分布式实时计算中不确定性等问题的解决方法,得到分布式实时程序运行信息的收集模型。...
  • storm记录--1-- 实时计算系统

    千次阅读 2017-07-01 15:55:02
    实时计算系统实时计算场景:伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高。举个搜索场景中的例子,当一个卖家发布了一条...
  • StreamCQL : 实时计算系统中的持续查询语言 CQL ( Continuous Query Language ) 是一个针对流式数据的查询语言。相对于传统的SQL来说,CQL中增加了window 窗口的概念。数据存储在内存中,因此内存中的计算可以...
  • 2.5 实时计算系统 2.6 反作弊系统 gold-anti-fraud 2.7 多维度分析系统 gold-multianaly 2.8 商场系统 gold-shop 埋点: 前端埋点,后端起一个服务,实时消费kafka队列的消息,然后做流计算统计 前端调用埋点api到...
  • Storm实时计算系统

    2017-07-21 16:30:00
    先抛开s4,storm,puma这些系统不谈,我们首先来看一下,如果让我们自己设计一个实时计算系统,我们要解决哪些问题。 1. 低延迟。都说了是实时计算系统了,延迟是一定要低的。 2. 高性能。性能不高就是浪费机器,...
  • 作者简介:饿马摇铃 百度云高级研发工程师负责百度云智能运维产品(Noah)数据采集和计算方向架构设计和研发工作,对分布式系统...干货概览本文是我在实时数据计算系统的设计、开发、运维生涯的一部分经验总结。主要...
  • Storm是一个开源的分布式实时计算系统,可以简单,可靠地处理大量的数据流。  ----<<Storm实战构建大数...
  • 海量数据实时计算系统在高并发互联网应用中的原理和实践 占超群(阿里巴巴) 2012-12-05 16:50 永泰大宴会厅C 演讲幻灯片:海量数据实时计算系统在高并发互联网应用中的原理和实践[PDF] 随着...
  • 一脸懵逼学习Storm---(一个开源的分布式实时计算系统) Storm的官方网址:http://storm.apache.org/index.html 1:什么是Storm?  Storm是一个开源的分布式实时计算系统,可以简单、可靠的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,312
精华内容 5,724
关键字:

实时计算系统