阿里专家强琦解析:流式计算系统设计与实践

需积分: 11 15 下载量 178 浏览量 更新于2024-07-18 收藏 1.6MB PDF 举报
“阿里专家强琦在本次分享中深入探讨了流式计算的系统设计和实现,主要涵盖了阿里实时计算的模型、技术架构以及未来发展趋势。此外,还涉及大数据、云计算和实时计算框架的相关知识。” 正文: 阿里巴巴的实时计算专家强琦,以其花名“和仲”为大家介绍了实时计算的核心要素和阿里在这方面所做的工作。他在机器学习、分布式计算和搜索广告技术领域有着深厚的背景,致力于构建开放的大数据供应链基础设施平台。 实时计算主要关注数据的时效性和计算的时效性。它包括可枚举和不可枚举的计算方式,以及交互式的增量计算。实时计算模型通常需要处理两类数据规模,即大数据和“小”数据。其中,大数据通常指的是海量的数据量,而“小”数据则可能指的是需要快速响应的低延迟数据。 在模型设计上,有两个主要方向:面向吞吐和面向延时。面向吞吐的模型优点在于其简单的架构和高吞吐量,但可能牺牲数据的时效性,且易受数据倾斜的影响。相反,面向延时的模型更注重数据的实时性,但模型和调度的复杂度增加。 具体到计算模型,阿里采用了增量模型,这种模型具有确定性、可加性和可逆性的特点,适合进行交互式计算。例如,通过并行DAG(有向无环图)结构,可以高效地处理复杂的计算任务,如Caset1和Caset2所示,这涉及到数据的分组、聚合和转换操作。 在数据处理过程中,阿里实时计算框架考虑了数据的生命周期、容错监控、DAG的面向设计,以及全量和增量的处理策略。例如,全量处理可能采用Partition/文件/pull的方式,而增量处理(流式)则可能采用Batch/内存/push,并保持进程的Keepalive状态,以确保中间结果不落地,从而降低延时。 对于处理效率,MapReduce模型被广泛应用,通过`map()`函数处理输入数据,`reduce()`函数进行聚合,以及`merge()`和`rollback()`方法来管理状态和错误恢复。 阿里实时计算模型旨在平衡吞吐量、延时和数据时效性,同时提供强大的容错机制和灵活的计算模式,以适应不同业务场景的需求。随着云计算技术的发展,这样的实时计算框架在大数据分析、广告定向、搜索优化等各个领域都发挥着至关重要的作用,也为未来的智能化应用奠定了坚实的基础。
2019-10-20 上传
在移动互联网时代,各式各样的新业务和新产品不断出现,通信市场的用户总体规模增长速度变缓,使运营商之间的竞争愈加激烈,新产品营销的时效性和准确度问题亟需解决。实时营销作为新的营销方式,具有较高的实时性,通过运用大数据分析技术分析用户上网行为特征,并在合适的时间、合适的地点向用户推荐合适的内容,从而提升用户感知、增加用户粘性。如何运用大数据技术实现实时营销是本文的重要内容。本文深入调研分析了大数据实时流式处理技术,并结合其在满足非功能性需求方面的独特优势,设计了一个可以同时满足大数据存储、大数据实时性分析的实时营销系统。该系统采用了实时数据处理与离线数据处理相结合的架构。其中离线数据处理系统通过采用Hadoop集群将用户数据进行标签。实时数据处理系统首先将实时数据以日志的形式存储在Flume中,然后再通过Strom和Spark Streaming工具对实时数据进行实时处理与分析,并对数据进行标签。将生成的标签存储在Redis数据库中。实时营销系统的核心是通过分析电信用户DPI(Deep Packet Inspection,深度包检测)数据、挖掘用户上网特征、添加用户标签、发现目标用户,并采用个性化插件包对用户提供个性化的营销服务。本文的主要研究内容为:(1)实时营销系统的需求分析。结合电信运营商的营销系统的时效性差并且效率低下的现状,通过运用大数据的技术手段和方案,在基于上海电信海量的DPI数据的基础上,为用户进行实时性的推荐。在明确系统目标的前提下,完成对整个系统的需求分析,包括功能性需求(如营销商品管理、营销任务管理、营销规则管理、发送规则管理、营销效果评估)和非功能性需求(如流式框架每秒处理10万条DPI数据,时延少于500毫秒,可处理TB级以上的数据)。然后采用用例图对功能性需求进行建模。(2)实时性营销系统的总体架构设计。基于实时营销系统需求分析的基础上,提出了离线数据处理与实时数据处理相结合的总体架构。首先选择出流式处理平台的相应组件,然后采用流式处理组件串联结构,同时以CORE为核心调用相关模块进行实时营销的策略模式,对系统进行了全面的部署。通过对离线数据和实时数据分别进行标签处理,利用标签对用户进行多维度的画像,全面反应用户特征,使得营销过程更加精准化。(3)实时性营销系统的具体设计与实现。根据系统的总体架构设计,本文主要从三个方面完成了基于流式计算的电信实时营销系统的设计与实现。解决实时数据的传输问题:流式计算数据处理系统需要进行对实时信息进行及时、不间断地处理。Flume从节点上实时采集数据并将数据以日志的形式存储。Kafka负责低时延的收发日志数据。Storm系统读取Kafka中的数据,并及时的处理,保证处理的稳定性和时效性。Spark Streaming完成对数据的实时分析,保证在复杂度高的分析时具有较高的实时性。Storm系统与Spark Streaming系统共同部署在YARN上,完成了平台的整合与数据资源共享,节省了网络开销。解决精准性营销的问题:通过对电信的DPI数据进行分析,建立用户标签库,对用户进行画像。通过数据挖掘算法发现目标用户群以及用户的触点事件,建立相应的营销规则,当事件发生时触发实时营销动作。这是一个需要不断更新和完善的过程,通过建立正确的营销反馈体系和良好的反馈机制,使实时营销更加精准。利用个性化插件包解决个性化业务的需求问题:利用Mysql数据库和自定义应用程序接口,针对不同的业务场景开发不同的插件包,使实时营销具有可拓展性。(4)实时性营销系统的测试及结果分析。从系统的可行性和性能方面进行了验证和分析。在可行性方面,系统能够实现预期的功能,同时输出相对应的结果,并以明星机推送的场景实例对系统进行验证;在性能方面,分别对Storm和Spark Streaming的性能进行测试,并给出了结果分析。本文提出的实时营销系统能够清晰全面的掌握用户特征与习惯信息,为用户提供个性化定制的营销服务。在竞争激烈的移动增值业务市场中,率先满足用户的需要,得到用户的青睐,同时减少用户的流失。