实时计算,流数据处理系统简介与简单分析实时计算,流数据处理系统简介与简单分析
互联网领域的实时计算一般都是针对海量数据进行的,除了像非实时计算的需求(如计算结果准确)以外,实时计算最重要的
一个需求是能够实时响应计算结果,一般要求为秒级。实时计算的今天,业界都没有一个准确的定义,什么叫实时计算?什么
不是?今天这篇文章详细介绍了实时计算,流数据处理系统简介与简单分析。
以下为作者原文:以下为作者原文:
一.实时计算的概念
实时计算一般都是针对海量数据进行的,一般要求为秒级。实时计算主要分为两块:数据的实时入库、数据的实时计算。
主要应用的场景:主要应用的场景:
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:是一个分布式的、容错的实时计算系统。可用于处理消息和更新数据库(流处理),在数据流上进行