流计算系统总结

@1 Twitter Storm(开源 github)
(1)closure、java
(2)实时Hadoop(主从结构)、适用场景广泛、可伸缩性高、保证无数据丢失(Reliability)、异常健壮、容错性好、语言无关性
(3)Topologies、Streams、Spouts、Bolts、Stream groupings、Tasks、Workers、nimbus、supervisor
(4)无特定API、负载平衡不好
(5)应用性强

@2 Yahoo! S4(Simple Scalable Streaming System)(开源 apache)
(1)java
(2)可扩展、去中心化、部分容错、弹性的、API、面向对象、可插拔的(pluggable)
(3)Actors模式+类MapReduce编程模型(processEvent()、output())
(4)Adapters、Events、PEs(functionality、named stream、keyed attrebute、value)、PNs
(5)Yhahoo!最初开发用来提高搜索广告有效点击率,cost-per-click,根据当前情景上下文(用户偏好、地理位置等)安排搜索广告
(6)0.3.0版本、半成品、负载平衡不好、不支持动态部署、当事件流数据超过10M时,会出现丢失数据
(7)研究性强 参考论文《S4: Distributed Stream Computing Platform》

@3 Facebook Data Free-way and Puma(数据传输通道和流处理系统)
(1)java
(2)基于Hive/Hadoop
(3)Data Free-way主要包括4个组件:Scribe(用于客户端、负责通过RPC发送数据)、Calligraphus(shuffle数据并写到HDFS)、Continuous Copier(将文件从一个HDFS拷贝到另一个HDFS)、PTail(并行地tail多个HDFS上的目录,并写文件数据到标准输出)。即Data Freeway提供了文件到消息、消息到消息、消息到文件和文件到文件的四种传输方式,可以根据应用场景灵活部署,提高传输效率。
(4)为用户提供站点和网页分析(针对个人用户或广告主等)
(5)参考论文《Apache Hadoop Goes Realtime at Facebook》

@4 LinkdeIn Kafka(开源 apache)
(1)java
(2)高吞吐量的分布式发布订阅消息系统
(3)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能;高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息;支持通过kafka服务器和消费机集群来分区消息;支持Hadoop并行数据加载。
(4)设计侧重高吞吐量,用于好友动态,相关性统计,排行统计,访问频率控制,批处理等系统。大部分的消息中间件能够处理实时性要求高的消息/数据,但是对于队列中大量未处理的消息/数据在持久性方面比较弱。

@5 StreamBase
(1)java
(2)IBM开发的一款商业流式计算系统,主要应用于金融行业和政府部门,有开发版
(3)Primary StreamBase Server(管理进程)、Secondary StreamBase Server
HA Container(HA Events、Heartbeat)-容错恢复、Application Container(Input Adapter、Application Logic、Output Adapter)-逻辑计算、System Container(stats、control)-系统状态信息、Monitor-监视
(4)四种容错机制

@6 Borealis(开源)
(1)C++
(2)Brandeis University、Brown University和MIT合作开发的一个分布式流式系统,目前系统已经停止维护,最新的Release版本停止在2008年。
(3)QP(Query Processor)(计算中心,系统的核心部件)、
(4)容错性好(四种容错机制Amnesia Backup-重做、Passive Standby-待命、Active Standby-同时、Upstream Backup-上游备份)、支持动态部署和静态部署

@7 StreamInsight(Microsoft)
(1)SQL Server 的新模块,提供复杂事件处理(CEP,Complex Event Processing)功能
(2)设计适合高吞吐场景,并注重结果的实时性

@8 Percolator(Google)
(1)Google在新一代索引系统中放弃了MapReduce,替代者即Percolator
(2)Percolator是一种增量处理平台,它能持续更新索引系统,无需从头重新处理一遍整个系统。为了提高效率,MapReduce和其它批量处理系统创造了大数据批量,因此无法处理单个小规模的数据更新。Percolator系统便是为了解决这一问题,它能对一个大数据集增量处理更新。
(3)尚未公布相关论文

@9 Iprocess(阿里巴巴)
(1)通用的分布式流数据实时与持续计算平台
(2)特点
– 有向图模型
节点为用户编写的组件、边为事件
– 触发器模式
– 完备事件驱动的架构,定制复杂完备事件条件
– 支持相关集计算和Reduce时数据集生成(k‐mean)
– 树存储模型,支持不同级别定制不同一致性模型和事务模型
– 可扩展的编程模型
提出并支持树型实时MR和增量/定时MR
– 持续与AdHoc计算(endpoint)
– 微内核+组件系统(系统级组件+用户组件)
– 多任务服务化,任务沙箱,优先级,任务调度
– 两级容错:应用级和系统级,运算时动态扩容
– 系统级组件系统:实时join、二级索引、倒排表、物化视图、counter…
– 分布式系统的容错,自动扩展,通讯,调度
– 保序…

@10 Apache Flume(开源)
(1)java
(2)Apache Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data.
Its main goal is to deliver data from applications to Apache Hadoop HDFS.
It has a simple and flexible architecture based on streaming data flows.
It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms.
The system is centrally managed and allows for intelligent dynamic management.
It uses a simple extensible data model that allows for online analytic applications.

@资料来源
Twitter Storm简介 http://xumingming.sinaapp.com/109/twitter-storm简介/
Whate is S4? http://docs.s4.io/manual/overview.html (官方文档)
Beyond MapReduce:谈数据流计算系统 http://ioteam.zjgsu.edu.cn/blog/?p=403
MapReduce Hold不住? http://database.51cto.com/art/201110/298062.htm
linkedin高吞吐量分布式消息系统kafka使用手记 http://www.54chen.com/java-ee/linkedin-kafka-usage.html
Apache Flume – Architecture of Flume NG http://www.cloudera.com/blog/2011/12/apache-flume-architecture-of-flume-ng-2/
《阿里巴巴分布式流数据实时与持续计算(强琦)》
StreamInsight浅入浅出 http://tech.ddvip.com/2010-09/1285567813160528.html

@转载请注明出处

http://blog.sina.com.cn/s/blog_6a101df801017etl.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值