最火爆的开源流式系统Storm vs 新星Samza

2023-11-18

分布计算系统框架,按照数据集的特点来说,主要分为data-flow和streaming两种。data-flow主要是以数据块为数据源来处理数据,代表有:MR、Spark等,我称作它们为大数据,而streaming主要是处理单位内得到的数据,这种方式,更注重于实时性,主要包括Strom、JStorm和Samza等,我称作它们为快数据。

在这篇文章中,我主要谈论streaming相关的框架。

第一个是Storm,一个实时计算系统,它假定数据源是动态的,可以向流水一样处理数据。

它的特点是:低延迟、高性能、分布式、可扩展和容错性。

架构如下图所示。


Storm的具体概念可以参照:http://blog.csdn.net/hljlzc2007/article/details/12976211,这里不做具体介绍。

Storm目前算是最最稳定的开源流式处理框架,但是个人认为它有两个问题。

1. Storm虽然支持多个语言编写spout和bolt端的代码,但是它的主要技术实现是clojure,这给玩大数据、开源的朋友带来了极大的不变,因为大家会的语言不是以java和C++等大众语言为主,这样的话,变得不可控了,难以深入了解、修改其细节。

2. Storm可以支持在Yarn(Hadoop 2.0)上,可以和其他开源框架共享Hadoop集群的资源,但是性能不佳,这个有待Storm改善

当然无论如何,Storm依然是目前开源流式处理框架的王者。

第二个我想说的是JStorm,这个是阿里做的,算是Storm的另一个实现,它用的语言是Java.

特点:

1. 客户端的API与Storm基本上是一致的,如果从Storm迁移过来,不需要修改bolt和spout的代码

2. Jstrom比Strom稳定,速度更快

3. 提供了一些新的特性

大家有兴趣可以去玩玩,项目地址https://github.com/alibaba/jstorm 

第三个是Samza

Samza是由LinkedIn开源的一个技术,它是一个开源的分布式流处理系统,非常类似于Storm。不同的是它运行在Hadoop之上,并且使用了自己开发的Kafka分布式消息处理系统。

这是Linkin开发的一个小而美的项目,如何美呢?

1. 只有几千行代码,完成的功能就可以和Storm媲美,当然目前还有很多的不足

2. 和Kafka结合紧密,更方便的处理数据

3. 运行在Yarn上

之前我做过的一个项目,是Kafka + Storm + ElasticSearch,将来完全可以将Storm替换成Samza,这样的话,还可以利用Hadoop集群的资源,做一些存储、离线分析的功能。将实时处理和离线分析都运行在Hadoop上,不得不说Samza是一个伟大的项目,这样可以减少项目的增长复杂度,利于维护,还是那句话,小而美的东西,更受欢迎一些。

架构:

Samza主要包含三层,

1. 流处理层 --> Kafka

2. 执行层     --> YARN

3. 处理层    --> Samza API

Samza的流处理层和执行层都是可插拔式的,开发人员可以使用其他框架来替代,不局限于上述两种技术。

Samza提供了一个YARN ApplicationMaster,和YARN job,运行在集群之外,下图中不同颜色代表不同的主机。

Samza客户端告诉YARN的Resouce Manager,它想启动一个Samza job, YARN RM 告诉YARN Node manager,分配空间给YARN ApplicationMaster,NM指定完空间后,YARN container会运行Samza Task Runner。


Samza状态管理

流式处理数据对状态的管理是很难的,由于数据是流动的,本身没有状态,这样就需要靠历史数据来记录应用的场合,Samza提供了一个内部的key-value数据库,它是基于LevelDB,运行的JVM之外的,使用它来存储历史数据。这样的做的好处是:

1. 减少JVM的开销

2. 使用内部存储,极大提高的吞吐率

3. 减少并发操作

Samza处理流程.

下图是Samza官方给的一例子,根据Member ID分组,计算页面访问次数。入口消息分别来自Machine1、2,出口是Machine3,我们可以这样理解,消息分散在不同的消息系统中(Kafka),Samza从不同的Kafka中读取topic,在将topic进行处理后,发送到Machine3,这里不做过多分解,具体可以参照官方文档。



项目地址:https://github.com/apache/incubator-samza

官方文件:http://samza.incubator.apache.org/

以上给了我们无限遐想,Storm是否会保持领先地位,Samza能否取而代之呢,无论如何,作为开发者来说,几千行代码,我都迫不及待去要读一下了。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最火爆的开源流式系统Storm vs 新星Samza 的相关文章

随机推荐

  • 激发创造力!如何轻松录制PPT和人像视频

    大家好 作为一个追求创意的人 你是否曾经遇到过想要一边讲PPT一边录制视频 或者同时录制PPT和人像的困扰 别担心 我来给你分享一些简单而有趣的方法 首先 我们可以利用PPT自带的屏幕录制功能来实现一边讲PPT一边录制视频的需求 只需点击
  • Python运算符列表

    Python运算符列表 运算符 描述 x y x y 加 减 号可重载为连接符 x y x y x y x y 相乘 求平方 相除 求余 号可重载为重复 号可重载为格式化 lt lt gt gt lt gt 比较运算符 lt lt gt g
  • 亚马逊秋季促销指南——如何更好的利用促销?

    最新消息 亚马逊官方宣布将会在10月份举行Prime会员大促 覆盖多个站点 亚马逊卖家们一定要抓住这波促销机会 在这个秋季再冲一把 但是还有一些小白玩家可能对于亚马逊促销了解不够 那么接下来我要讲的这些准备工作 你要看完哦 一 促销工具 首
  • TensorFlow的随机张量(Random Tensors)

    随机张量 Random Tensors TensorFlow有几种操作可以创建具有不同分布的随机张量 随机操作是有状态的 每次评估时都会创建新的随机值 与变量不同 随机张量在运行前不再需要显式初始化 tf random normal tf
  • flink-connector-jdbc_2.12 简介、中文文档、中英对照文档 下载

    flink connector jdbc 2 12 文档 下载链接 含jar包 源码 pom 组件名称 中文 文档 下载链接 中英对照 文档 下载链接 flink connector jdbc 2 12 1 14 3 jar flink c
  • Oracle数据库管理-ORA-12542 TNS 地址已被占用

    今日客户数据库连接报错 在使用plsql进行数据库连接时出现如下报错信息 ORA 12542 TNS 地址已被占用 问题排查 1 使用其他服务器客户端连接数据库正常 2 只有这一台机器连接数据库异常 查询相关的metalink文档发现如下
  • 原生input实现上传文件以及文件夹

    最近接到了一个上传文件和文件夹的需求 考虑了一下打算用原生的input来实现上传文件 话不多说直接上代码 1 html部分
  • NLP之基于TextCNN的文本情感分类

    TextCNN 文章目录 TextCNN 1 理论 1 1 基础概念 最大汇聚 池化 层 请添加图片描述 https img blog csdnimg cn 10e6e1ed6bfd42f0bd46b658ed52ff50 png 1 2
  • 数据结构——堆(带图详解)

    目录 堆 堆的概念 堆的性质 堆的创建 1 堆向下调整 2 堆的创建 3 建堆的时间复杂度 堆的插入和删除 1 堆的插入 2 堆的删除 堆的应用 1 优先级队列的实现 2 堆排序 3 Top k问题 堆 Heap 堆的概念 前面介绍的优先级
  • 计算机应用基础的体会,学习计算机应用基础心得体会(3篇)【可编辑版】

    资料简介 学习计算机应用基础心得体会 3篇 可编辑版 计算机基础学习心得体会 1 众所周知 21 世纪是一个信息经济时代 为适应时代的发展 作为一名当代大学生 所受的社会压力将比任何时候的大学生都要来 得沉重 因此在校期间 我们必须尽可能的
  • 如何屏蔽某网站

    博主用电脑的时候用一会儿总是控制不住就刷起了知乎 然后在蹉跎中度过了美好的时光 于是决定屏蔽知乎等让我分心的网站 希望能够专注于眼前的事 此方法治标不治本 因为能屏蔽也能让它恢复 因此想要真正不分心还得提高自制力 我的思路是修改host文件
  • 网页一键生成app软件_工程人必须拥有的4个自动生成软件,操作简单,一键输入直接生成...

    工程人必须拥有的4个自动生成软件 操作简单 一键输入直接生成 还在为写技术交底而头疼吗 还在为经常熬夜而烦恼吗 还在为没有好的模板而郁闷吗 这些都是工程人的通病 作为工程人深有同感 如果有一个能一键操作 就能自动生成技术交底的软件 是不是很
  • 【华为OD机试真题2023B卷 JAVA&JS】宜居星球改造计划

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 宜居星球改造计划 知识点广搜 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 2XXX年 人类通过对火星的大气进行宜居改造分析 使得火星已在理论上具备人类宜居的条件 由于
  • C# 监听http请求

    直接上代码 public partial class FrmHome Form HttpListener verifyHttplisten private object listenLocker new object Thread Thre
  • vscode go mod报错(萌新)

    出现如下报错信息 gopls was not able to find modules in your workspace When outside of GOPATH gopls needs to know which modules y
  • Arduino 运行 Rust

    项目设置 首先 我们将通过运行来创建一个新的 cargo 项目 我们需要为 avr 目标 目标三元组 avr unknown unknown 交叉编译我们的项目 为此 我们需要切换到 nightly 工具链 因为一些依赖包使用不稳定的功能来
  • 浅谈Java平台无关性

    为什么Java要支持平台无关性 众所周知 Java是平台无关的语言 那么Java为什么要支持平台无关性 总结一下 有如下几点 支持多变的网络环境 如今是一个互联网的时代 网络将各种各样的计算机和设备连接起来 比如网络连接了windows的P
  • 仪表放大器 电流的检测

    完美的减法运算放大电路 引入缓冲器 固定增益的双运放仪表放大器 12倍放大 电流的检测 错误接法 正确接法
  • LVS的原理

    一 LVS的介绍 linux virtual server简称LVS Internet的快速增长使多媒体网络服务器面对的访问数量快速增加 服务器需要具备提供大量并发访问服务的能力 因此对于大负载的服务器来讲 CPU I O处理能力很快会成为
  • 最火爆的开源流式系统Storm vs 新星Samza

    分布计算系统框架 按照数据集的特点来说 主要分为data flow和streaming两种 data flow主要是以数据块为数据源来处理数据 代表有 MR Spark等 我称作它们为大数据 而streaming主要是处理单位内得到的数据