Yahoo! s4和Twitter storm的粗略比较

ItemsProjects Yahoo! s4 Twitter Storm
协议 Apache license 2.0 Eclipse Public License 1.0
开发语言 Java Clojure,Java,Clojure编写了核心代码
结构 去中心化的对等结构 有中心节点nimbus,但非关键
通信 可插拔的通讯层,目前是基于UDP的实现 基于facebook开源的thrift框架
事件/Stream <K,A>序列,用户可自定义事件类 提供Tuple类,用户不可自定义事件类,
但是可以命名field和注册序列化器
处理单元 Processing Elements,内置PE处理
count,join和aggregate等常见任务
Bolt,没有内置任务,提供IBasicBolt处理
自动ack
第三方交互 提供API,Client Adapter/Driver,第三方客户端输入或者输出事件 定义Spout用于产生Stream,没有标准输出API
持久化 提供Persist API规范,可根据频率或者次数做
持久化
无特定API,用户可自行选择处理
可靠处理  无,可能会丢失事件  提供对事件处理的可靠保证(可选)
路由 EventType + Keyed attribute + value匹配
内置count,join和aggregate标准任务
Stream Groupings:
Shuffle,Fields,All,Global,None,Direct
非常灵活的路由方式
多语言支持  暂时只支持Java 多语言支持良好,本身支持Java,Clojure,
其他非JVM语言通过thrift和进程间通讯
Failover  部分支持,数据无法failover  部分支持,数据同样无法failover
Load Balance 不支持  不支持
 并行处理  取决于节点数目,不可调节  可配置worker和task数目,storm会尽量将worker和task均匀分布
动态增删节点 不支持  支持
动态部署  不支持  支持
web管理  不支持  支持
代码成熟度  半成品  成熟
活跃度  低  活跃
编程  编程 + XML配置   纯编程
参考文档  http://docs.s4.io/ https://github.com/nathanmarz/storm/wiki/
http://xumingming.sinaapp.com/category/storm/ (非常好的中文翻译)

本文来源于"阿里中间件团队播客",原文发表时间" 2011-11-09"

时间: 2024-08-04 13:38:25

Yahoo! s4和Twitter storm的粗略比较的相关文章

Twitter Storm

第 121 章 Twitter Storm 目录 121.1. 单机版121.2. lein 安装 121.1. 单机版 操作系统环境:Ubuntu 13.04 KVM虚拟机 安装 storm 涉及到安装以下包:Python.zookeeper.zeromq.jzmq.storm 过程 121.1. Ubuntu + Storm 单机环境安装 安装 zookeeper $ sudo apt-get install zookeeper zookeeper-bin zookeeperd 安装 zer

如何使用Twitter Storm处理实时的大数据

Hadoop(大数据分析领域无可争辩的王者)专注于批处理.这种模型对许多情形(比如为网页建立索引)已经足够,但 还存在其他一些使用模型,它们需要来自高度动态的来源的实时信息.为了解决这个问题,就得借助 Nathan Marz 推出的 Storm(现在在 Twitter 中称为 BackType).Storm 不处理静态数据,但它处理预计会连续的流数据.考虑到 Twitter 用 户每天生成 1.4 亿条推文 (tweet),那么就很容易看到此技术的巨大用途. 但 Storm 不只是一个传统的大数

在archlinux上搭建twitter storm cluster

有关archlinux基本系统安装,请参照archlinux简明安装指南一文,下面以上述为基础讲解如何一步步安装twitter storm cluster. 先列出安装主要步骤 安装oracle jdk 安装必须的编译工具gcc, g++, make 安装python2.7, unzip 编译安装zeromq 编译安装jzmq 下载lein 下载storm-starter 下载storm release版本安装zookeeper为了自动运行storm cluster,安装supervisord

twitter storm源码走读(一)

nimbus启动场景分析 本文详细介绍了twitter storm中的nimbus节点的启动场景,分析nimbus是如何一步步实现定义于storm.thrift中的service,以及如何利用curator来和zookeeper server建立通讯. 对于storm client来说,nimbus是storm cluster与外部的唯一接口,是总的接口人,在这个接口上使用thrift定义的各种service.但是nimbus光接单并不干活,具体的脏活累活,这哥们都是分配到各个slots上的,让

了解Twitter Storm架构,以及批处理和流式处理解决方案

Hadoop(大数据分析领域无可争辩的王者)专注于批处理.这种模型对许多情形(比如为网页建立索引)已经足够,但还存在其他一些使用模型,它们需要来自高度动态的来源的实时信息.为了解决这个问题,就得借助 Nathan Marz 推出的 http://www.aliyun.com/zixun/aggregation/13431.html">Storm(现在在 Twitter 中称为 BackType).Storm 不处理静态数据,但它处理预计会连续的流数据.考虑到 Twitter 用户每天生成

Twitter Storm - DRPC

DRPC ,Distributed Remote Procedure Call  RPC本身是个成熟和古老的概念, Storm里面引入DRPC主要是利用storm的实时计算能力来并行化CPU intensive的计算 DRPC, 只是storm应用的一个场景, 并且storm提供相应的编程框架, 以方便程序员 提供DRPC server的实现, 并提供对DRPC场景经行封装的Topology   对于storm, Topology内部其实是没有任何区别的, 主要就是实现和封装Topology和D

twitter storm源码走读(四)

Trident Topology执行过程分析 TridentTopology是storm提供的高层使用接口,常见的一些SQL中的操作在tridenttopology提供的api中都有类似的影射.关于TridentTopology的使用及运行原理,当前进行详细分析的文章不多. 从TridentTopology到vanilla topology(普通的topology)由三个层次组成: 面向最终用户的概念stream, operation 利用planner将tridenttopology转换成va

twitter storm源码走读(三)

worker进程中线程的分类及用途 本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程. 概述 worker进程启动过程中最重要的两个函数是mk-worker和worker-data,代码就不一一列出了.worker顺利启动之后会拥有如下图所示的各类线程.   接收和发送线程 worker在启动的时候会生成进程级别的消息接收和消息发送线程,它们视具体配置而定,可以是基于zmq,也可以基于netty,这个没有太多好说的.so

twitter storm源码走读(二)

topology提交过程分析 概要 storm cluster可以想像成为一个工厂,nimbus主要负责从外部接收订单和任务分配.除了从外部接单,nimbus还要将这些外部订单转换成为内部工作分配,这个时候nimbus充当了调度室的角色.supervisor作为中层干部,职责就是生产车间的主任,他的日常工作就是时刻等待着调度到给他下达新的工作.作为车间主任,supervisor领到的活是不用自己亲力亲为去作的,他手下有着一班的普通工人.supervisor对这些工人只会喊两句话,开工,收工.注意