流数据特点:实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息
快速持续到达;
来源多,格式复杂;
数据量大,但不关心存储;
注重整体价值;
顺序颠倒或不完整;
数据的价值随着时间的流逝而降低;
流计算系统要求:
高性能
海量式
实时性
分布式
易用性
可靠性
流计算框架:
商业级:IBM InfoSphere Streams;IBM StramBase(用于银行);
开源流计算框架:Twitter Storm;Yahoo! S4;
公司自行开发:Facebook Puma;Dstream(百度);银河流数据处理平台(淘宝)
流数据处理过程:
数据实时采集;数据实时计算;数据实时查询服务;
数据实时采集:需要保证实时性、低延时、稳定可靠;
目前有许多互联网公司发布的开源分布式日志采集系统均可满足每秒数百MB的数据采集和传输需求,如:
Facebook的Scribe
LinkedIn的Kafka
淘宝的Time Tunnel
基于Hadoop的Chukwa和Flume
基本架构有三个部分:
Agent:主动采集数据,并把数据推送到Collector部分
Collector:接收多个Agent的数据,并实现有序、可靠、高性能的转发
Store:存储Collector转发过来的数据(对于流计算不存储数据)
数据实时计算:对采集的数据进行实时的分析和计算,并反馈实时结果
实时查询服务:经由流计算框架得出的结果可供用户进行实时查询、展示或储存
传统:需要用户主动查询;数据为历史数据;
实时查询:实时;最新数据;