千家信息网

spark和hive storm mapreduce的比较

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,Spark Streaming与Storm都可以用于进行实时流计算。但是他们两者的区别是非常大的。其中区别之一就是,Spank Streaming和Stom的计算模型完全不一样,Spark Strea
千家信息网最后更新 2025年12月03日spark和hive storm mapreduce的比较

Spark Streaming与Storm都可以用于进行实时流计算。但是他们两者的区别是非常大的。其中区别之一
就是,Spank Streaming和Stom的计算模型完全不一样,Spark Streaming是基于RDD的,因此需要将一小段时间内的,比如1秒内的数据,收集起来,作为一个RDD.然后再针对这个batch的数据进行处理。而Storm却可以做到每来一条数据, 都可以立即进行处理和计算。 因此,Spark Streaming实际上严格意义上来说,只能称作准实时的流计算框架,而Storm是真正意义上的实时计算框架。
此外,Storm支 持的一项高级特性,是Spark Streamng暂时不具备的,即Storm支持在分布式流式计算程序(Topology) 在运行过程中,可以动态地调整并行度。从而动态提高并发处理能力。而SparkSreaming是无法动态调整并行度的。
但是Spark Streaming也有其优点,首先Spark Streaming由于是基Fbatch进行处理的,因此相较于Stom基于单条数据进行处理,具有数倍甚至效十倍的吞吐量。
此外,Spark Streaming由于也身处于Spark生态圈内,因此Spark Streaming可以与Spark Core.SparkSQl.甚至是Spark MLuib Spark GraphX进行无维整合.流式处理完的数据,可以立即进行各种购Bmap. reduce转换操作, 可以立即使用sqi进行查询,甚至可以立即使用machne laming或者图计算算法进行处理。这种一站式的大数据处理功能和优势,是Slorm无法匹敌的。
因此,综合上述来看,通常在对实时性要求特别高、而且实时数据量不稳定,比如在白天有高峰期的情况下,可以选择使用Storm.但是如果是对实时性要求一般,允许1秒的准实时处理,而且不要求动态调被并行度的话, 选择Spark Streamng是更好的选择。

Spark SQL实际上并不能完全替代Hive.因为Hive是一种基FHDFS的数据仓库,并且提供了基于QL模型的,针对存储了大数据的数据仓库,进行分布式交互查询的查询引擎。
严格的来说,Spark SQL能够替代的,是Hive的查询引擎,而不是Hive本身, 实际上即使在生产环境Spark SQL也是针对Hive数据仓库中的数据进行查询,Spark本身自己是不提供存储的, 自然也不可能参代Hive作为数据仓库的这个功能。
Spark SQL的一个优点,相较于Hive查询引擎来说,就是速度快,同样的SQL语句,可能使用Hive的量询引擎,由于其底层基于MapReduce. 必须经过shutfhe过程走进盘, 因此速度是非常缓慢的。很多复杂的SQL语句。在hive中执行都需要一个小时以上的时间。而SparkSQL由于其底层基干Spak自身的基于内存的特点,因此速度达到了Hive查询引擎的数倍以上。
但是Spark SQL由于与Spark一样。是大数据领域的新起的新秀,因此还不够完善,有少量的Hive支持的高级特性,Spark SQL还不支持,导致Spark SQL暂时还不能完全替代Hive的查询引擎。而只能在部分Spark SQL功能特性可以满足需求的场景下,进行使用。
而Spark SQL相较于Hive的另外一个优点,就是支持大量不同的数据源,包括hive.json. parquet、 jdbc等等。此外,Spark SQL由于身处Spark技术堆栈内,也是基于RDD来工作,因此可以与Spark的其他组件无缝整合使用,配合起来实现许多复杂的功能。比如. Spark SQL支持可以直接针对hdts文件执行sql语句!

MapReduce能够完成的各种离线批处理功能,以及常见算法(比如二次排序、topn等),基于Spark RDD的核心编程,都可以实现,并且可以更好地、更容易地实现。而且基于Spark RDD编写的高线批处理程序,运行速度是MapReduce的数倍。速度上有非常明显的优势。
Spark相较于MapReduce速度快的最主要原因就在于,MapReduce的计算模型太死板,必须是mapreduce模式,有时候即使完成一些诸如过减之类的操作,也必须经过map reduce过程,这样就必须经过shufle过程。而MapReduce的shffle过程是最消耗性能的,因为shuffe中间的过程必须基于进盘来读写。而Spark的shuthe虽然也要基于磁盘,但是其大量ransformation操作, 比如单纯的map或者hiter等操作,可以直接基于内存进行pipeline操作,速度性能自然大大提升。
但是Spark也有其劣势。由于Spark基于内存进行计算,虽然开发容易,但是真正面对大数据的时候(比如一次操作针对10亿以上级别),在没有进行调优的情况下,可能会出现各种各样的问题,比如OOM内存溢出等等。导致Spark程序可能都无法完全运行起来,就报惜挂掉了,而MapReduce即使是运行缓慢,但是至少可以慢慢运行完。
此外,Spark由于是新崛起的技术新秀,因此在大数据领域的完善程度,肯定不如MapReduce.比如基于HBase、Hive作为离线批处理程序的输入输出,Spark就远设有MapReduce来的完善。实现起来非常麻烦。

数据 处理 查询 实时 速度 引擎 过程 功能 支持 运行 仓库 内存 动态 程序 优点 实际 实际上 就是 模型 特性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中原地产软件开发待遇 我的世界头颅数据库 计算机应用软件开发怎么样 dnf手游服务器系统 漳州数据库在哪里 我的世界服务器叫什么 MySQL的RDS数据库 数据库细粒度访问控制 为什么都是安卓系统服务器不一样 台州嵌入式软件开发是做什么的 监控检测网络安全配置失败怎么办 学大数据以后可以从事软件开发吗 新瑞网络安全 新建数据库是服务器怎么填 软件开发规程 诚实守信网络安全主题班会记录 初始化数据库弹出错误 大专生网络技术安全开题报告 安徽宿州软件开发培训哪里有 吃鸡国际服战斗服务器未响应 我的世界孤岛生存服务器手机版 安徽电商软件开发供应商 安装数据库物理内存不足 阳江自主可控软件开发优化价格 数据库的索引是从几开始 服务器耗电么 信息通信基地网络安全防护中心 软件开发办公图片 ssh连接两个数据库连接 盈信世嘉网络技术公司
0