转自:http://www.open-open.com/lib/view/open1426065900123.html

许多分布式计算系统都可以实时或接近实时地处理大数据流。本文将对三种Apache框架分别进行简单介绍,然后尝试快速、高度概述其异同。

Apache Storm

在Storm中, 先要设计一个用于实时计算的图状结构,我们称之为拓扑(topology)。这个拓扑将会被提交给集群,由集群中的主控节点(master node)分发代码,将任务分配给工作节点(worker node)执行。一个拓扑中包括spout和bolt两种角色,其中spout发送消息,负责将数据流以tuple元组的形式发送出去;而bolt则负责 转换这些数据流,在bolt中可以完成计算、过滤等操作,bolt自身也可以随机将数据发送给其他bolt。由spout发射出的tuple是不可变数 组,对应着固定的键值对。

Storm的流处理可对框架中名为Topology(拓扑)的DAG(Directed Acyclic Graph,有向无环图)进行编排。这些拓扑描述了当数据片段进入系统后,需要对每个传入的片段执行的不同转换或步骤。

Apache Spark

Spark Streaming是 核心Spark API的一个扩展,它并不会像Storm那样一次一个地处理数据流,而是在处理前按时间间隔预先将其切分为一段一段的批处理作业。Spark针对持续性数 据流的抽象称为DStream(DiscretizedStream),一个DStream是一个微批处理(micro-batching)的RDD(弹 性分布式数据集);而RDD则是一种分布式数据集,能够以两种方式并行运作,分别是任意函数和滑动窗口数据的转换。

Apache Samza

Samza处 理数据流时,会分别按次处理每条收到的消息。Samza的流单位既不是元组,也不是Dstream,而是一条条消息。在Samza中,数据流被切分开来, 每个部分都由一组只读消息的有序数列构成,而这些消息每条都有一个特定的ID(offset)。该系统还支持批处理,即逐次处理同一个数据流分区的多条消 息。Samza的执行与数据流模块都是可插拔式的,尽管Samza的特色是依赖Hadoop的Yarn(另一种资源调度器)和Apache Kafka。

Samza可以使用以本地键值存储方式实现的容错检查点系统存储数据。这样Samza即可获得“至少一次”的交付保障,但面对由于数据可能多次交付造成的失败,该技术无法对汇总后状态(例如计数)提供精确恢复。

共同之处

以上三种实时计算系统都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,它们的共同特色在于:允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行。此外,它们都提供了简单的API来简化底层实现的复杂程度。

三种框架的术语名词不同,但是其代表的概念十分相似:

对比图

下面表格总结了一些不同之处:

数据传递形式分为三大类:

  1. 最多一次(At-most-once):消息可能会丢失,这通常是最不理想的结果。
  2. 最少一次(At-least-once):消息可能会再次发送(没有丢失的情况,但是会产生冗余)。在许多用例中已经足够。
  3. 恰好一次(Exactly-once):每条消息都被发送过一次且仅仅一次(没有丢失,没有冗余)。这是最佳情况,尽管很难保证在所有用例中都实现。

另一个方面是状态管理:对状态的存储有不同的策略,Spark Streaming将数据写入分布式文件系统中(例如HDFS);Samza使用嵌入式键值存储;而在Storm中,或者将状态管理滚动至应用层面,或者使用更高层面的抽象Trident。

转载于:https://www.cnblogs.com/bonelee/p/6295656.html

三个大数据处理框架:Storm,Spark和Samza 介绍比较相关推荐

  1. 从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史

    abstract: 当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题.本文将从大数据的基础特性开始,进而解释分而 ...

  2. 为什么Flink会成为下一代大数据处理框架的标准?

    导读:本文将告诉你Flink是什么,以及为什么Flink会成为下一代大数据处理框架的标准. 作者:张利兵 如需转载请联系大数据(ID:hzdashuju) 01 什么是Flink? 在当前数据量激增传 ...

  3. 【2017年第1期】智慧城市多源异构大数据处理框架

    刘岩1,王华2,秦叶阳3,朱兴杰1 1. 泰康保险集团股份有限公司数据信息中心,北京  102206 2. 中国人民大学,北京  100872 3. 北京大学,北京  100871 摘要:智慧城市建设 ...

  4. 最主流的五个大数据处理框架的优势对比

    我深入分析了五个大数据处理框架:Hadoop,Spark,Flink,Storm,Samaza Hadoop 顶尖的框架之一,大数据的代名词.Hadoop,MapReduce,以及其生态系统和相关的技 ...

  5. 从Hadoop到Spark和Flink,大数据处理框架十年激荡发展史

    当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题.本文将从大数据的基础特性开始,进而解释分而治之的处理思想,最后 ...

  6. 从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史!

    当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题.本文将从大数据的基础特性开始,进而解释分而治之的处理思想,最后 ...

  7. 大数据技术原理与应用 第三篇 大数据处理与分析(三)Spark

    一. Spark简介 Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的.低延迟的数据分析应用程序 1.1 ...

  8. 【大数据处理技术】第三篇 大数据处理与分析(暂停更新)

    大数据分析与处理 第7章 MapReduce 7.1 概述 7.1.1 分布式并行编程 7.1.2 MapReduce 模型简介 7.1.3 Map 和 Reduce 函数 7.2 Mapreduce ...

  9. 23个java大数据处理框架

    本文转自:https://www.cnblogs.com/stm32stm32/p/6413557.html 目前,编程人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越 ...

最新文章

  1. python rest api 测试_如何用Python编写REST API的单元测试
  2. libuv 原理_Libuv初理解
  3. python获取终端输出流_Linux下用Python获取命令行输出的几个方案
  4. Java数据库篇5——事务
  5. Linux服务器SSH免密登录
  6. VueTreeselect出现unknown解决方法
  7. erp系统源码php_最新仿金蝶 PHP电商ERP进销存系统软件 带扫描功能
  8. 从零开始搭建“表情包小程序”
  9. 计算机主要应用是什么意思,admin是什么意思 Admin的用途介绍
  10. 问题1:编译内核出现错误‘debian/stamp/build/kernel‘及解决方案
  11. docker onlyoffice7.1.1 word excel ppt在线编辑、在线预览_添加中文字体和中文字号_02
  12. 如何解决win10语言栏消失变成空白问题
  13. Excel 分组统计不重复项
  14. CEAA自动汇编脚本常用命令
  15. bitmap的六种压缩方式,Android图片压缩(转)
  16. GBA程序开发入门1
  17. sql中的日期和字符串的转化
  18. 保障出行安全|科力锐助力长沙黄花国际机场灾备建设
  19. ROS1云课→28机器人代价地图配置
  20. linux离线语音识别程序,linux离线语音识别安装运行总结

热门文章

  1. linux上寻找并杀死僵尸进程
  2. 深度解析KGDB调试Linux模块和内核
  3. 计算机视觉深度学习顶会_顶会论文接收量再破纪录,计算机视觉创新正在发生什么变化?丨 CVPR 2019分享会...
  4. 弗林德斯大学计算机科学,想成为IT大神?就去学习弗林德斯大学计算机科学专业...
  5. mysql命令行各个参数解释
  6. 字节跳动最新开源!沈阳java培训哪个好
  7. 逆误差函数:torch.erfinv
  8. 【C++ STL】vector库使用方法
  9. 【深度学习】EfficientNetV2分析总结和flops的开源库
  10. 【深度学习入门到精通系列】开始恢复更新通知~!