Storm,yahoo!S4比较

2019-03-02 23:50|来源: 网路

hadoop变得越来越热门,但是hadoop的设计是用来处理静态数据和批处理任务,流处理实施起来不是很方便,有些困难。而目前存在的比较普遍的分布式流处理框架有Storm和S4。两者各有特点,以下大致列出了网上对两者的比较,以便根据不同的任务或需求来选择合适的框架。

 

1.目前主要开源大数据解决方案

解决方案 开发商 类型 描述
Storm Twitter 流式处理 Twitter 的新流式大数据分析解决方案
S4 Yahoo! 流式处理 来自 Yahoo! 的分布式流计算平台
Hadoop Apache 批处理 MapReduce 范式的第一个开源实现
Spark UC Berkeley AMPLab 批处理 支持内存中数据集和恢复能力的最新分析平台
Disco Nokia 批处理 Nokia 的分布式 MapReduce 框架
HPCC LexisNexis 批处理 HPC 大数据集群

 PS:目前大数据处理框架的概述http://pan.baidu.com/share/link?shareid=828559866&uk=2248644272

       spark的介绍:http://blog.csdn.net/dellme99/article/details/17076045

2.大致区别

Summary.

There are many other differences, but for sake of brevity I just present a short summary of the pros of each platform that the other one lacks.

S4 pros:

  • Clean programming model.
  • State recovery.
  • Inter-app communication.
  • Classpath isolation.
  • Tools for packaging and deployment.
  • Apache incubation.

Storm pros:

  • Pull model.
  • Guaranteed processing.
  • More mature, more traction, larger community.
  • High performance.
  • Thread programming support.
  • Advanced features (transactional topologies, Trident).

3.Storm is just awesome with a perfect blend of open source technologies used in the architecture. It is very easy to write real time distributed application on storm than S4 with high performance.

参考文献:

[1]:http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/

[2]:http://gdfm.me/2013/01/02/distributed-stream-processing-showdown-s4-vs-storm/

[3]:http://www.quora.com/What-would-you-choose-between-Flume-Yahoo-S4-and-Backtype-Twitter-Storm-and-why#


转自:http://www.cnblogs.com/hequn/articles/3475794

相关问答

更多
  • 您可以使用isS4(my_object)来确定它是否是S4对象。 另外, str也应该告诉你(看看顶部,以“Formal Class ...”开头)。 You can use isS4(my_object) to determine whether it is an S4 object. Additionally, str should also tell you (look at the top, starts with "Formal Class ...").
  • S3只能调度它的第一个参数,而S4可以调度多个参数。 如果您想要为函数foo编写方法,如果给定类"bar"对象或给定类"bar" 和 "foobar"对象,或给定类"barfoo"和"foobar" "barfoo"对象"foobar"然后S4提供了一个更好的方式来处理这样的复杂性。 S3非常简单易于实现,但并不是一个正式的面向对象的系统。 这种简单性来自于强制执行属于一个类的对象具有正确的组件/插槽等。在S3中,我可以做类似class(obj) <- "lm"事情,方法调度将使用"lm"类的方法当通过ob ...
  • 如果分配失败,我将返回错误而不是警告。 警告告诉您该过程已完成,但可能会产生意外结果。 在您的情况下,该过程中止: setReplaceMethod(f="setInd",signature="foo", def=function(object,value){ if(!is.numeric(value)) stop("Foobar") object@ind <- value return(object)} ) 使用stop允许你使用tryCatch()或try()结构 ...
  • 根据其他答案,一个设备是640 x 360 dp ,另一个是640 x 384 dp 。 您不希望为它们制作不同的布局,因为您迟早会看到640 x 372 dp或640 x 388 dp 。 相反,使您的布局有弹性,不要硬编码像素(密度独立的像素也可以严格硬编码)。 As per other answers one device is 640 x 360 dp and the other 640 x 384 dp. You don't want to make a different layout for ...
  • 快速而肮脏的答案是:是的,S4(以及所有Android设备)根据显示像素密度和输入图像的密度,根据需要自动缩放图像。 我相信S4被归类为“ xxhdpi ”设备,使其成为标准“ mdpi ”设备的3倍。 可以在https://stackoverflow.com/a/2639150/3032上看到更详尽的讨论,解释这些计算中的所有细节及其重要性。 The quick and dirty answer is: yes, the S4 (and all Android devices) do the auto-s ...
  • 您必须使用双方括号提取列表的单个元素: test(b@a.list[[1]]) 如果使用单个方括号,则索引列表的子集,该列表仍然只是一个列表,而不是A类: > class(b@a.list[1]) [1] "list" > class(b@a.list[[1]]) [1] "A" attr(,"package") [1] ".GlobalEnv" You must extract single elements of a list using double square brackets: tes ...
  • 我发现这是由于新的Windows 8功能称为“混合关机”。 它比hybernate更接近实际关闭。 值得庆幸的是,shutdown命令接受/ hybrid进入此模式,模仿Windows 8对话框关闭。 Process.Start("shutdown", "/s /f /hybrid /t 0"); 注意:重新启动将回收内核。 “关闭”并没有真正关闭,也不会。 更多关于他们的快速启动逻辑。 I found that this is due to a new Windows 8 feature called ...
  • 不,没有API允许您在Galaxy S4上设置静态UID。 但是,根据Broadcom NFC控制器是否支持此功能(没有关于此的公开信息),可以在通过NCI设置卡仿真门时设置静态防冲突标识符(NFC控制器接口,请参阅NFC论坛规范) )。 但是,您肯定需要使用修改后的libnfc-nci创建自己的Android固件来执行此操作。 更新: Broadcom NFC控制器支持设置任意静态UID值。 有关详细信息,请参阅此答案 。 No, there is no API that permits you to s ...
  • 我有一个Galaxy S3,最初当我和你在同一个位置时我不知道该怎么做。 通过USB识别设备的Android页面有点误导。 那么出路是什么? 好吧,下载并安装Samsung Kies并让它完成它的工作。 它将安装所有必要的驱动程序,以使您的设备可识别。 快乐的编码。 I have a Galaxy S3 and initially I did not know what to do when I was in the same position as you are. The Android page on ...
  • Per nrussel的评论: 参数contains函数setClass处理继承。 您希望Employee类继承Person类(即员工是一种特殊类型的人)。 所以 setClass("Person", slots = list(name="character", age="numeric")) setClass("Employee", slots = list(boss="Person"), contains = "Person") 会做的伎俩。 > alice <- new("Person", name ...