Apache storm ApacheSamza和ApacheStorm的用例有何不同?
我偶然发现,它的主旨确实将Samza与Storm进行了对比,但它似乎只涉及实现细节Apache storm ApacheSamza和ApacheStorm的用例有何不同?,apache-storm,apache-samza,Apache Storm,Apache Samza,我偶然发现,它的主旨确实将Samza与Storm进行了对比,但它似乎只涉及实现细节 这两个分布式计算引擎的用例有何不同?每种工具都适合做什么工作?这里是Tony Siciliani的一篇文章,提供了Storm、Spark和Samza的用例(和架构)比较。下面还提供了指向实际用例的Apache.org链接 关于Samza和Storm的用例,他写道: 这三个框架都特别适合高效地处理连续、大量的实时数据。那么使用哪一个呢?没有硬性规定,最多只有一些一般性的指导方针 Apache Samza 如果要处
这两个分布式计算引擎的用例有何不同?每种工具都适合做什么工作?这里是Tony Siciliani的一篇文章,提供了Storm、Spark和Samza的用例(和架构)比较。下面还提供了指向实际用例的Apache.org链接 关于Samza和Storm的用例,他写道: 这三个框架都特别适合高效地处理连续、大量的实时数据。那么使用哪一个呢?没有硬性规定,最多只有一些一般性的指导方针 Apache Samza 如果要处理大量的状态(例如,每个分区有许多GB),Samza会在同一台机器上共同定位存储和处理,从而能够高效地处理内存中不适合的状态。该框架还通过其可插拔API提供了灵活性:其默认执行、消息传递和存储引擎都可以由您选择的替代方案替代。此外,如果您拥有来自不同团队、具有不同代码库的多个数据处理阶段,那么Samza的细粒度作业将特别适合,因为它们可以以最小的涟漪效应添加/删除 一些使用Samza的公司:LinkedIn、Intuit、Metamarkets、Quantiply、Fortscale Samza用例列表: 阿帕奇风暴 如果您想要一个允许增量计算的高速事件处理系统,Storm就可以了。如果您还需要按需运行分布式计算,而客户机正在同步等待结果,那么您将拥有现成的分布式RPC(DRPC)。最后但并非最不重要的一点是,因为Storm使用Apache Thrift,所以您可以用任何编程语言编写拓扑。如果您需要状态持久性和/或一次交付,那么您应该查看更高级别的Trident API,它还提供微批处理 使用Storm的几家公司:Twitter、雅虎!,Spotify,天气频道
Storm用例列表:ApacheStorm和ApacheSamza之间最大的区别在于如何流式处理数据。 ApacheStorm使用拓扑进行实时计算,并将其送入集群,在集群中,主节点将代码分发给执行它的工作节点。在拓扑结构中,数据在作为不可变的键值对集吐出数据流的喷口之间传递 以下是Apache Storm的体系结构: ApacheSamza通过一次处理一条消息来流式处理消息。流被划分为有序序列的分区,每个分区都有一个唯一的ID。它支持批处理,通常与Hadoop的Thread和Apache Kafka一起使用 以下是Apache Samza的体系结构: 请阅读下面关于每个系统执行细节的具体方式的更多信息 用例 Apache Samza由LinkedIn创建。 一位软件工程师写道: 它在LinkedIn已经生产了几年,目前在多个数据中心的数百台机器上运行。我们最大的Samza作业是在高峰流量时段每秒处理超过1000000条消息。 使用的资源:
好吧,我已经对这些系统进行了几个月的研究,我认为它们在用例上没有太大的不同。我认为最好按照以下几点进行比较:
谢谢你简洁的回答!然而,仍然有几个问题:(1)我是否理解Samza没有关于单个流的概念?也就是说,是否所有入站数据都集中在一起而不考虑其来源?(2) samza是面向批处理的,它擅长在相同的输入上运行多个任务,而Storm更像是一个带有多个处理步骤的“管道”或“级联”,我的理解正确吗?还是我完全没有领会你的意思?谢谢(注意,我是Samza最初的开发者之一)。这是一个卓越的