Spark精华问答 | 为什么要学Spark?

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=png

为什么要学习Spark?作为一个用来实现快速而通用的集群计算的平台。扩展广泛使用的MapReduce计算模型,而且高效地支持更多的计算模式,包括交互式查询和流处理。Spark的一个重要特点就是能够在内存中计算,因而更快。即使在磁盘上进行的复杂计算,Spark依然比MapReduce更加高效。优势如此明显的Spark,是不是要好好学习一下呢?


640?wx_fmt=gif1



















Q:学了Spark有什么用呢?


A:首先说一下Spark的优势:

1、 更高的性能。因为数据被加载到集群主机的分布式内存中。数据可以被快速的转换迭代,并缓存用以后续的频繁访问需求。在数据全部加载到内存的情况下,Spark可以比Hadoop快100倍,在内存不够存放所有数据的情况下快hadoop10倍。

2、通过建立在Java、Scala、Python、SQL(应对交互式查询)的标准API以方便各行各业使用,同时还含有大量开箱即用的机器学习库。 

3、与现有Hadoop 1和2.x(YARN)生态兼容,因此机构可以无缝迁移。 

4、方便下载和安装。方便的Shell(REPL: Read-Eval-Print-Loop)可以对API进行交互式的学习。 

5、借助高等级的架构提高生产力,从而可以讲精力放到计算上。

所以总结一下就是简单,快速,兼容性好,功能强大。不用再将注意力放在框架上,而是集中于业务逻辑,所以在大数据中Spark很受欢迎,学习Spark,符合市场需求。


640?wx_fmt=gif2

Q:Spark的应用场景有哪些?


A:Yahoo将Spark用在Audience Expansion中的应用,进行点击预测和即席查询等

淘宝技术团队使用了Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等。应用于内容推荐、社区发现等
腾讯大数据精准推荐借助Spark快速迭代的优势,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上。
优酷土豆将Spark应用于视频推荐(图计算)、广告业务,主要实现机器学习、图计算等迭代计算。


640?wx_fmt=gif3

Q:Hadoop和Spark比较


A:Hadoop这项大数据处理技术大概已有十年历史,而且被看做是首选的大数据集合处理的解决方案。MapReduce是一路计算的优秀解决方案,不过对于需要多路计算和算法的用例来说,并非十分高效。数据处理流程中的每一步都需要一个Map阶段和一个Reduce阶段,而且如果要利用这一解决方案,需要将所有用例都转换成MapReduce模式。

而Spark则允许程序开发者使用有向无环图(DAG)开发复杂的多步数据管道。而且还支持跨有向无环图的内存数据共享,以便不同的作业可以共同处理同一个数据。

Spark运行在现有的Hadoop分布式文件系统基础之上(HDFS)提供额外的增强功能。它支持将Spark应用部署到现存的Hadoop v1集群(with SIMR – Spark-Inside-MapReduce)或Hadoop v2 YARN集群甚至是Apache Mesos之中。


640?wx_fmt=gif4

Q:Spark的特性


A:Spark通过在数据处理过程中成本更低的洗牌(Shuffle)方式,将MapReduce提升到一个更高的层次。利用内存数据存储和接近实时的处理能力,Spark比其他的大数据处理技术的性能要快很多倍。

Spark还支持大数据查询的延迟计算,这可以帮助优化大数据处理流程中的处理步骤。Spark还提供高级的API以提升开发者的生产力,除此之外还为大数据解决方案提供一致的体系架构模型。

Spark将中间结果保存在内存中而不是将其写入磁盘,当需要多次处理同一数据集时,这一点特别实用。Spark的设计初衷就是既可以在内存中又可以在磁盘上工作的执行引擎。当内存中的数据不适用时,Spark操作符就会执行外部操作。Spark可以用于处理大于集群内存容量总和的数据集。

Spark会尝试在内存中存储尽可能多的数据然后将其写入磁盘。它可以将某个数据集的一部分存入内存而剩余部分存入磁盘。开发者需要根据数据和用例评估对内存的需求。Spark的性能优势得益于这种内存中的数据存储。


640?wx_fmt=gif5

Q:Spark的其他特性包括


A:支持比Map和Reduce更多的函数。优化任意操作算子图(operator graphs)。可以帮助优化整体数据处理流程的大数据查询的延迟计算。提供简明、一致的Scala,Java和Python API。提供交互式Scala和Python Shell。目前暂不支持Java。Spark是用Scala程序设计语言编写而成,运行于Java虚拟机(JVM)环境之上。目前支持如下程序设计语言


640?wx_fmt=png

小伙伴们冲鸭,后台留言区等着你!

关于Spark,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~


福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg

2、公众号后台回复:白皮书,获取IDC最新数据白皮书整理资料!


推荐阅读:

真香,朕在看了!
Hadoop从业者为什么需要Spark?答案是Hadoop已死,Spark称霸。 而Hadoop的死亡过程在2012年已经开始: 1,由于Hadoop自身架构的导致了在离线数据存储分析意外的一切领域都力不从心,理论已经证明MapReduce模型可以模拟一切分布式计算,但是效率成为其死穴,而Spark基于RDD的计算图可以轻松、完整地表达MapReduce模型,并且能极为容易的处理实时流计算、机器学习、图计算、误差查询等; 2,2012年以来Hadoop本身架构臃肿并未得到本质性的改善,很多修改升级也就只是补丁式的修修补补,现在Hadoop这个云计算大数据前期做出卓越贡献的平台正在继续的死亡; 4,原先支持Hadoop的四大商业机构纷纷宣布支持Spark; 5,Mahout前一阶段表示从现在起他们将不再接受任何形式的以MapReduce形式实现的算法,另外一方面,Mahout宣布新的算法基于Spark; 6,Cloudera的机器学习框架Oryx的执行引擎也将由Hadoop的MapReduce替换成SparkSpark是继Hadoop之后,成为替代Hadoop的下一代云计算大数据核心技术,目前SPARK已经构建了自己的整个大数据处理生态系统,如流处理、图技术、机器学习、NoSQL查询等方面都有自己的技术,并且是Apache顶级Project,可以预计的是2014年下半年到2015年在社区和商业应用上会有爆发式的增长。 国外一些大型互联网公司已经部署了Spark。甚至连Hadoop的早期主要贡献者Yahoo现在也在多个项目中部署使用Spark;国内的淘宝、优酷土豆、网易、Baidu、腾讯等已经使用Spark技术用于自己的商业生产系统中,国内外的应用开始越来越广泛。Spark正在逐渐走向成熟,并在这个领域扮演更加重要的角色。 现在很多原来使用深度使用Hadoop的公司都在纷纷转向Spark,国内的淘宝是典型的案例,我们在这里就不做介绍。在此,我们以使用世界上使用Hadoop最典型的公司Yahoo!为例,大家可以看一下其数据处理的架构图: 而使用Spark后的架构如下: 大家可以看出,现阶段的Yahoo!是使用Hadoop和Spark并存的架构,而随着时间的推进和Spark本身流处理、图技术、机器学习、NoSQL查询的出色特性,最终Yahoo!可能会完成Spark全面取代Hadoop,而这也代表了所有做云计算大数据公司的趋势。 最后,不得不提的是Spark的“One stack to rule them all”的特性,Spark的特点之一就是用一个技术堆栈解决云计算大数据中流处理、图技术、机器学习、交互式查询、误差查询等所有的问题,此时我们只需要一个技术团队通过Spark就可以搞定一切问题,而如果基于Hadoop就需要分别构建实时流处理团队、数据统计分析团队、数据挖掘团队等,而且这些团队之间无论是代码还是经验都不可相互借鉴,会形成巨大的成本,而使用Spark就不存在这个问题; 再说一点,Hadoop现在人才已经非常多了,想在该技术领域做到中国前100人之内是非常有难度的,而如果从事Spark则会更容易些,因为现在Spark人才不是稀少,而是太稀缺。 Hadoop从业者们,您需要Spark
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值