×

野狼e族_web后端,大数据,Spark

前端技术网 前端技术网 发表于2024-01-25 04:32:08 浏览1214 评论0

抢沙发发表评论

一、大数据处理为何选择spark

大数据处理为何选择Spark,而不是Hadoop?

野狼e族_web后端,大数据,Spark

一、基础知识

1、Spark

Spark是一个用来实现快速而通用的集群计算的平台。

野狼e族_web后端,大数据,Spark

在速度方面,Spark扩展了广泛使用的MapReduce计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。

Spark项目包含多个紧密集成的组件。Spark的核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。

2、Hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习扣扣群:740041381,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系。

二、大数据处理选择

Spark和Hadoop都可以进行大数据处理,那如何选择处理平台呢?

1.处理速度和性能

Spark扩展了广泛使用的MapReduce计算模型,支持循环数据流和内存计算。

Hadoop进行计算时,需要从磁盘读或者写数据,同时整个计算模型需要网络传输,导致MapReduce具有高延迟的弱点。

据统计,基于Spark内存的计算速度比Hadoop MapReduce快100倍以上,基于磁盘的计算速度也要快10倍以上。

2.开发难易度

Spark提供多语言(包括Scala、Java、Python)API,能够快速实现应用,相比MapReduce更简洁的代码,安装部署也无需复杂配置。使用API可以轻松地构建分布式应用,同时也可以使用Scala和Python脚本进行交互式编程。

二、大数据中的Spark指的是什么

Spark是一种通用的大数据计算框架,和传统的大数据技术MapReduce有本质区别。前者是基于内存并行计算的框架,而mapreduce侧重磁盘计算。Spark是加州大学伯克利分校AMP实验室开发的通用内存并行计算框架,用于构建大型的、低延迟的数据分析应用程序。

Spark同样支持离线计算和实时计算两种模式。Spark离线计算速度要比Mapreduce快10-100倍。而实时计算方面,则依赖于SparkStreaming的批处理能力,吞吐量大。不过相比Storm,SparkStreaming并不能做到真正的实时。

Spark使用强大的函数式语言Scala开发,方便简单。同时,它还提供了对Python、Java和R语言的支持。

作为大数据计算框架MapReduce的继任者,Spark具备以下优势特性。

1,高效性

不同于MapReduce将中间计算结果放入磁盘中,Spark采用内存存储中间计算结果,减少了迭代运算的磁盘IO,并通过并行计算DAG图的优化,减少了不同任务之间的依赖,降低了延迟等待时间。内存计算下,Spark比 MapReduce快100倍。

2,易用性

不同于MapReduce仅支持Map和Reduce两种编程算子,Spark提供了超过80种不同的Transformation和Action算子,如map,reduce,filter,groupByKey,sortByKey,foreach等,并且采用函数式编程风格,实现相同的功能需要的代码量极大缩小。

3,通用性

Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。

4,兼容性

Spark能够跟很多开源工程兼容使用。如Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,并且Spark可以读取多种数据源,如HDFS、HBase、MySQL等。

三、大数据Spark技术真的能够替代Hadoop吗

但在过去的几年中,Hadoop似乎并没有出现过任何衰退的迹象。在2015年Atscale的调查报告中显示:“在未来3个月内,已经有超过 76%的人使用Hadoop来做更多的工作。”这些受访者中大约有一半声称他们利用Hadoop工作中获得了一定的价值。Hadoop作为一个十多年的老品牌,在产品的采用方面并没有减缓下降的趋势,Spark也并没有做到真正取代Hadoop。空口无凭,下面我们从以下几个方面来分析一下Spark在未来的几年之内到底能不能真正的取代Hadoop。

由雅虎为工程师和数据科学家打造的Apache Hadoop曾因巨大的潜力而备受称赞,但如今它却受到了更快的产品的影响,而这些产品往往来自于它本身的生态系统——Spark就是其中之一。今年早些,H20.ai的创始人Sri Ambati对Datanami曾说:“Spark将会使Hadoop处于绝地”。

毫无疑问,为专家设计的产品一般都会停留在原来的轨道上,在其他方面不会有所涉及。但Spark在各个行业都存在一些有意义的分布,这可能要归功于各种市场上的大数据的泛滥。所以,虽然Spark可能有更广泛的应用,但Hadoop仍然支配着原本预期的用户群。在全球范围内,我们可以看到Informatica处于中心位置——在欧洲和美洲整体市场份额占比达32%。

在两年半的时间里,我们跟踪了Informatica在云市场和工业领域的增长,结果显示达到了50%的增长,而且在高等教育领域也处于领先地位。上周, Informatica被Gartner评为主数据管理解决方案2017年魔力象限的领导者。而Hadoop仍然停留于过去成功的地理市场中。在企业客户中Spark也没有大范围的涉及。我们注意到世界上大多数公司规模较小,一般都为1-50名员工,所以Spark似乎并不是任何规模公司的唯一选择。

对于那些已经使用Hadoop的人来说,这个产品也对企业和公司起到了一定的作用,而且 Hadoop并不仅限于一种用户。而Hadoop无论在何种规模的公司中,使用率相对于Spark还是非常高的。此外,在调查的过程中,传统的科技公司像eBay、Verizon、惠普和亚马逊等主流厂商已经开始使用Spark,但是Hadoop还没有被大规模的抛弃。相反,用户使用Spark作为系统的介绍,利用这个程序来突破Hadoop的障碍,两者的结合,使得工作更高效地完成。

Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施:它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着你不需要购买和维护昂贵的服务器硬件。同时,Hadoop还会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它并不会进行分布式数据的存储。

其次,还有一点也值得注意——这两者的灾难恢复方式迥异。因为Hadoop将每次处理后的数据都写入到磁盘上,所以其天生就能很有弹性的对系统错误进行处理。Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施:它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着你不需要购买和维护昂贵的服务器硬件。同时,Hadoop还会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。

四、大数据时代,为什么使用Spark框架

解决问题的层面不一样

首先,Hadoop和Apache Spark两者都是大数据框架,但是各自存在的目的不尽相同。Hadoop实质上更多是一个分布式数据基础设施:

它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着您不需要购买和维护昂贵的服务器硬件。

同时,Hadoop还会索引和跟踪这些数据,让大数据处理和分析效率达到前所未有的高度。Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它并不会进行分布式数据的存储。

两者可合可分

Hadoop除了提供为大家所共识的HDFS分布式数据存储功能之外,还提供了叫做MapReduce的数据处理功能。所以这里我们完全可以抛开Spark,使用Hadoop自身的MapReduce来完成数据的处理。

相反,Spark也不是非要依附在Hadoop身上才能生存。但如上所述,毕竟它没有提供文件管理系统,所以,它必须和其他的分布式文件系统进行集成才能运作。这里我们可以选择Hadoop的HDFS,也可以选择其他的基于云的数据系统平台。但Spark默认来说还是被用在Hadoop上面的,毕竟,大家都认为它们的结合是最好的。

以下是天地会珠海分舵从网上摘录的对MapReduce的最简洁明了的解析,其中把人理解成计算机就好了:

我们要数图书馆中的所有书。你数1号书架,我数2号书架。这就是“Map”。我们人越多,数书就更快。

现在我们到一起,把所有人的统计数加在一起。这就是“Reduce”。

Spark数据处理速度秒杀MapReduce

Spark因为其处理数据的方式不一样,会比MapReduce快上很多。MapReduce是分步对数据进行处理的:

”从集群中读取数据,进行一次处理,将结果写到集群,从集群中读取更新后的数据,进行下一次的处理,将结果写到集群,等等...“ Booz Allen

Hamilton的数据科学家Kirk Borne如此解析。

反观Spark,它会在内存中以接近“实时”的时间完成所有的数据分析:“从集群中读取数据,完成所有必须的分析处理,将结果写回集群,完成,”

Born说道。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。

如果需要处理的数据和结果需求大部分情况下是静态的,且你也有耐心等待批处理的完成的话,MapReduce的处理方式也是完全可以接受的。

但如果你需要对流数据进行分析,比如那些来自于工厂的传感器收集回来的数据,又或者说你的应用是需要多重数据处理的,那么你也许更应该使用Spark进行处理。

大部分机器学习算法都是需要多重数据处理的。此外,通常会用到Spark的应用场景有以下方面:实时的市场活动,在线产品推荐,网络安全分析,机器日记监控等。

文章到此结束,如果本次分享的野狼e族_web后端,大数据,Spark和大数据处理为何选择spark的问题解决了您的问题,那么我们由衷的感到高兴!