实时计算,流数据处理系统简介与简单分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实时计算,流数据处理系统简介与简单分析

发表于2014-06-12 14:19| 4350次阅读| 来源CSDN博客| 8条评论| 作者va_key

大数据实时计算流计算

摘要:实时计算一般都是针对海量数据进行的,一般要求为秒级。实时计算主要分为两块:数据的实时入库、数据的实时计算。今天这篇文章详细介绍了实时计算,流数据处理系统简介与简单分析。

编者按:互联网领域的实时计算一般都是针对海量数据进行的,除了像非实时计算的需求(如计算结果准确)以外,实时计算最重要的一个需求是能够实时响应计算结果,一般要求为秒级。实时计算的今天,业界都没有一个准确的定义,什么叫实时计算?什么不是?今天这篇文章详细介绍了实时计算,流数据处理系统简介与简单分析。

以下为作者原文:

一.实时计算的概念

实时计算一般都是针对海量数据进行的,一般要求为秒级。实时计算主要分为两块:数据的实时入库、数据的实时计算。

主要应用的场景:

1) 数据源是实时的不间断的,要求用户的响应时间也是实时的(比如对于大型网站的流式数据:网站的访问PV/UV、用户访问了什么内容、搜索了什么内容等,实时的数据计算和分析可以动态实时地刷新用户访问数据,展示网站实时流量的变化情况,分析每天各小时的流量和用户分布情况)

2) 数据量大且无法或没必要预算,但要求对用户的响应时间是实时的。比如说:

昨天来自每个省份不同性别的访问量分布,昨天来自每个省份不同性别不同年龄不同职业不同名族的访问量分布。

二.实时计算的相关技术

主要分为三个阶段(大多是日志流):

数据的产生与收集阶段、传输与分析处理阶段、存储对对外提供服务阶段

下面具体针对上面三个阶段详细介绍下

1)数据实时采集:

需求:功能上保证可以完整的收集到所有日志数据,为实时应用提供实时数据;响应时间上要保证实时性、低延迟在1秒左右;配置简单,部署容易;系统稳定可靠等。

目前的产品:Facebook的Scribe、LinkedIn的Kafka、Cloudera的Flume,淘宝开源的TimeTunnel、Hadoop的Chukwa等,均可以满足每秒数百MB的日志数据采集和传输需求。他们都是开源项目。

2)数据实时计算

在流数据不断变化的运动过程中实时地进行分析,捕捉到可能对用户有用的信息,并把结果发送出去。

实时计算目前的主流产品:

1.Yahoo的S4:S4是一个通用的、分布式的、可扩展的、分区容错的、可插拔的流式

系统,Yahoo开发S4系统,主要是为了解决:搜索广告的展现、处理用户的点击反馈。

2.Twitter的Storm:是一个分布式的、容错的实时计算系统。可用于处理消息和更新数

据库(流处理),在数据流上进行持续查询,并以流的形式返回结果到客户端(持续计算),并行化一个类似实时查询的热点查询(分布式的RPC)。

3.Facebook 的Puma:Facebook使用puma和HBase相结合来处理实时数据,另外

Facebook发表一篇利用HBase/Hadoop进行实时数据处理的论文(ApacheHadoop Goes Realtime at Facebook),通过一些实时性改造,让批处理计算平台也具备实时计算的能力。

关于这三个产品的具体介绍架构分析:

/system-analysis/20120111/317322.html

下面是S4和Storm的详细对比

其他的产品:

早期的:IBM的Stream Base、Borealis、Hstreaming、Esper

4. 淘宝的实时计算、流式处理

1) 银河流数据处理平台:通用的流数据实时计算系统,以实时数据产出的低延迟、高吞吐和复用性为初衷和目标,采用actor模型构建分布式流数据计算框架(底层基于akka),功能易扩展、部分容错、数据和状态可监控。银河具有处理实时流数据(如TimeTunnel收集的实时数据)和静态数据(如本地文件、HDFS文件)的能力,能够提供灵活的实时数据输出,并提供自定义的数据输出接口以便扩展实时计算能力。银河目前主要是为魔方提供实时的交易、浏览和搜索日志等数据的实时计算和分析。

2) 基于Storm的流式处理,统计计算、持续计算、实时消息处理。

在淘宝,Storm被广泛用来进行实时日志处理,出现在实时统计、实时风控、实时推荐等场景中。一般来说,我们从类kafka的metaQ或者基于HBase的timetunnel中读取实时日志消息,经过一系列处理,最终将处理结果写入到一个分布式存储中,提供给应用程序访问。我们每天的实时消息量从几百万到几十亿不等,数据总量达到TB级。对于我们来说,Storm 往往会配合分布式存储服务一起使用。在我们正在进行的个性化搜索实时分析项目中,就使

用了timetunnel +HBase + Storm + UPS的架构,每天处理几十亿的用户日志信息,从用户行为发生到完成分析延迟在秒级。

3) 利用Habase实现的Online应用

4)实时查询服务

∙半内存:使用Redis、Memcache、MongoDB、BerkeleyDB等内存数据库提供数据实时查询服务,由这些系统进行持久化操作。

∙全磁盘:使用HBase等以分布式文件系统(HDFS)为基础的NoSQL数据库,对于key-value引擎,关键是设计好key的分布。

∙全内存:直接提供数据读取服务,定期dump到磁盘或数据库进行持久化。

关于实时计算流数据分析应用举例:

对于电子商务网站上的店铺:

1)实时展示一个店铺的到访顾客流水信息,包括访问时间、访客姓名、访客地理位置、访客IP、访客正在访问的页面等信息;

2)显示某个到访顾客的所有历史来访记录,同时实时跟踪显示某个访客在一个店铺正在访问的页面等信息;

3)支持根据访客地理位置、访问页面、访问时间等多种维度下的实时查询与分析。

下面对Storm详细介绍下:

相关文档
最新文档