大数据 Storm 相比于 SparkHadoop 有哪些优势
Posted 西安优盛数据库与大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据 Storm 相比于 SparkHadoop 有哪些优势相关的知识,希望对你有一定的参考价值。
一、可能很多初学大数据的伙伴不知道Storm是什么,先给大家介绍一下Storm:
分布式实时计算系统,Storm 对于实时计算的意义类似于 Hadoop 对于批处理的意义。
Storm 的适用场景:流数据处理,Storm 可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。分布式 rpc,由于 Storm 的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式rpc框架来使用。当然,其实我们的搜索引擎本身也是一个分布式 rpc 系统。
二、然后我们再看下Storm、Spark、 Hadoop分别都有何特点
Storm: 分布式实时计算,强调实时性,常用于实时性要求较高的地方;
Hadoop:分布式批处理计算,强调批处理,常用于数据挖掘、分析;
Spark:是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速, Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
三、Storm的优势
1. 简单编程
在大数据处理方面相信大家对 Hadoop 已经耳熟能详,基于 GoogleMap/Reduce 来实现的 Hadoop 为开发者提供了map、reduce 原语,使并行批处理程序变得非常地简单和优美。同样,Storm 也为大数据的实时计算提供了一些简单优美的原语,这大大降低了开发并行实时处理的任务的复杂性,帮助你快速、高效的开发应用。
Spark 提供的数据集操作类型有很多种,不像 Hadoop 只提供了Map 和 Reduce 两种操作。比如map,filter, flatMap,sample, groupByKey, reduceByKey, union, join, cogroup,mapValues, sort,partionBy等多种操作类型,他们把这些操作称为 Transformations。同时还提供 Count, collect, reduce, lookup, save 等多种 actions。这些多种多样的数据集操作类型,给上层应用者提供了方便。各个处理节点之间的通信模型不再像 Hadoop 那样就是唯一的 Data Shuffle 一种模式。用户可以命名,物化,控制中间结果的分区等。可以说编程模型比 Hadoop 更灵活。
2. 多语言支持
除了用 java 实现 spout 和 bolt,你还可以使用任何你熟悉的编程语言来完成这项工作,这一切得益于Storm所谓的多语言协议。多语言协议是 Storm 内部的一种特殊协议,允许 spout 或者 bolt 使用标准输入和标准输出来进行消息传递,传递的消息为单行文本或者是json编码的多行。
Storm 支持多语言编程主要是通过 ShellBolt,ShellSpout 和 ShellProcess 这些类来实现的,这些类都实现了 IBolt 和 ISpout 接口,以及让 Shell 通过 java 的 ProcessBuilder 类来执行脚本或者程序的协议。
可以看到,采用这种方式,每个 tuple 在处理的时候都需要进行json 的编解码,因此在吞吐量上会有较大影响。
3. 支持水平扩展
在 Storm 集群中真正运行 topology 的主要有三个实体:工作进程、线程和任务。Storm 集群中的每台机器上都可以运行多个工作进程,每个工作进程又可创建多个线程,每个线程可以执行多个任务,任务是真正进行数据处理的实体,我们开发的 spout、bolt 就是作为一个或者多个任务的方式执行的。
因此,计算任务在多个线程、进程和服务器之间并行进行,支持灵活的水平扩展。
4. 容错性强
如果在消息处理过程中出了一些异常,Storm 会重新安排这个出问题的处理单元。Storm 保证一个处理单元永远运行(除非你显式杀掉这个处理单元)。
5. 可靠的消息保证
Storm 可以保证 spout 发出的每条消息都能被“完全处理”,这也是直接区别于其他实时系统的地方,如 S4。
6. 快速的消息处理
用 ZeroMQ 作为底层消息队列, 保证消息能快速被处理
7. 本地模式,支持快速编程测试
Storm 有一种“本地模式”,也就是在进程中模拟一个 Storm 集群的所有功能,以本地模式运行 topology 跟在集群上运行topology 类似,这对于我们开发和测试来说非常有用。
声明:图文均来源于网络,版权归原作者所有,如有侵权,请联系删除或授权事宜。
欢迎大家关注西安优盛数据库与大数据:
关注方法1:
点右上角按钮→查看公众账号→关注“西安优盛数据库与大数据”
关注方法2:
关注方法3:
点发现→扫一扫→扫一扫二维码
以上是关于大数据 Storm 相比于 SparkHadoop 有哪些优势的主要内容,如果未能解决你的问题,请参考以下文章