Sparks的介绍

2024-05-18 19:11

1. Sparks的介绍

Sparks简明释义:斯帕克斯(姓氏; Jared, 1789-1866,美国历史学家; 美国一城市。《Sparks(闪光)》是巴巴多斯流行风格组合Cover Drive首张专辑《Bajan Style》的第三首单曲。这首歌在2012年4月29日在英国以网络下载形式发行。这首歌的MV在2012年3月16日首次被放在YouTube视频网站上,总长度3分钟4秒。这首歌由Steve Mac制作。

Sparks的介绍

2. 大数据中的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等。

3. Spark应用是用来做什么的?

Spark因其自身优势,发展势头迅猛,目前几乎所有一站式大数据平台都已集成了Spark,很多行业也都正在用Spark来改善他们的业务,以下是Spark在一些行业的具体用途:
保险行业:通过使用Spark的机器学习功能来处理和分析所有索赔,优化索赔报销流程。
医疗保健:使用Spark Core,Streaming和SQL构建病人护理系统。
零售业:使用Spark分析销售点数据和优惠券使用情况。
互联网:使用Spark的ML功能来识别虚假的配置文件,并增强他们向客户展示的产品匹配。
银行业:使用机器学习模型来预测某些金融产品的零售的资料。
政府:分析地理,时间和财政支出。
科学研究:通过时间,深度,地理分析地震事件来预测未来的事件。
投资银行:分析日内股价以预测未来的价格走势。
地理空间分析:按时间和地理分析Uber旅行,以预测未来的需求和定价。
航空公司:建立预测航空旅行延误的模型。
设备:预测建筑物超过临界温度的可能性......

Spark应用是用来做什么的?

4. 科普Spark,Spark是什么,如何使用Spark

科普Spark,Spark是什么,如何使用Spark

1.Spark基于什么算法的分布式计算(很简单)
2.Spark与MapReduce不同在什么地方
3.Spark为什么比Hadoop灵活
4.Spark局限是什么
5.什么情况下适合使用Spark


什么是Spark
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。其架构如下图所示:


Spark与Hadoop的对比
Spark的中间数据放到内存中,对于迭代运算效率更高。
Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的抽象概念。
Spark比Hadoop更通用
Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。
这些多种多样的数据集操作类型,给给开发上层应用的用户提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的Data Shuffle一种模式。用户可以命名,物化,控制中间结果的存储、分区等。可以说编程模型比Hadoop更灵活。
不过由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合。
容错性
在分布式数据集计算时通过checkpoint来实现容错,而checkpoint有两种方式,一个是checkpoint data,一个是logging the updates。用户可以控制采用哪种方式来实现容错。
可用性
Spark通过提供丰富的Scala, Java,Python API及交互式Shell来提高可用性。
Spark与Hadoop的结合
Spark可以直接对HDFS进行数据的读写,同样支持Spark on YARN。Spark可以与MapReduce运行于同集群中,共享存储资源与计算,数据仓库Shark实现上借用Hive,几乎与Hive完全兼容。
Spark的适用场景
Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小(大数据库架构中这是是否考虑使用Spark的重要因素)
由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合。总的来说Spark的适用面比较广泛且比较通用。
运行模式
本地模式
Standalone模式
Mesoes模式
yarn模式
Spark生态系统
Shark ( Hive on Spark): Shark基本上就是在Spark的框架基础上提供和Hive一样的H iveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了Hive的API来实现query Parsing和 Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替Hadoop MapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。
Spark streaming: 构建在Spark上处理Stream数据的框架,基本的原理是将Stream数据分成小的时间片断(几秒),以类似batch批量处理的方式来处理这小部分数据。Spark Streaming构建在Spark上,一方面是因为Spark的低延迟执行引擎(100ms+)可以用于实时计算,另一方面相比基于Record的其它处理框架(如Storm),RDD数据集更容易做高效的容错处理。此外小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法。方便了一些需要历史数据和实时数据联合分析的特定应用场合。
Bagel: Pregel on Spark,可以用Spark进行图计算,这是个非常有用的小项目。Bagel自带了一个例子,实现了Google的PageRank算法。
End.

5. 深入浅出Spark什么是Spark

Spark是基于内存,是云计算领域的继Hadoop之后的下一代的最热门的通用的并行计算框架开源项目,尤其出色的支持Interactive Query、流计算、图计算等。

Spark在机器学习方面有着无与伦比的优势,特别适合需要多次迭代计算的算法。同时Spark的拥有非常出色的容错和调度机制,确保系统的稳定运行,Spark目前的发展理念是通过一个计算框架集合SQL、Machine Learning、Graph Computing、Streaming Computing等多种功能于一个项目中,具有非常好的易用性。

目前SPARK已经构建了自己的整个大数据处理生态系统,如流处理、图技术、机器学习、NoSQL查询等方面都有自己的技术,并且是Apache顶级Project,可以预计的是2014年下半年在社区和商业应用上会有爆发式的增长。

    国内的淘宝、优酷土豆等已经使用Spark技术用于自己的商业生产系统中,国内外的应用开始越来越广泛,国外一些大型互联网公司已经部署了Spark。甚至连Yahoo是Hadoop的早期主要贡献者,现在也在多个项目中部署使用Spark,国内我们已经在运营商、电商等传统行业部署了Spark.

百度百科传送门:http://baike.baidu.com/link?url=shmVM5DFONr5uEvXvs953fzvzl9lkUhSSdZQRYOJWqClPQv3K74LeTcPI-wFVgur2F9i4FyfNeBylkT1Y7occvT4Jn2_JZlyizhEYJFsZ1e

深入浅出Spark什么是Spark

6. Spark 基础概念释义

  1.RDD :弹性分布式数据集,弹性体现在可以在磁盘和内存间自由切   换;基于lineage(血统)的容错;task失败特定次数重试;stage失败重   试;数据分片的高度弹性(repartition)。spark的转化API将RDD封   装成一系列血缘关系的RDD,即DAG。    2.DAG :有向无环图。各个RDD之间存在着依赖关系,这些依赖关系   形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG,   进行Stage划分。    3.Partition :数据分区,partition的数量决定分区的数量    4.窄依赖 :子RDD依赖于父RDD中某一个固定的分区。    5.宽依赖 :子RDD有可能对父RDD中所有Partition产生依赖。    6.Job :用户提交的作业。RDD及DAG提交给DAGScheduler调度后,DAGScheduler会将RDD所有转化和动作视为一个Job.一个Job由一   个到多个task组成。    7.Stage :job的执行阶段。DAGScheduler将宽依赖作为节点对RDD的DAG进行stage划分,一个job可以被划分为一个或多个Stage。    8.Task :具体执行任务。一个job在每个stage内都会按照RDD Partition   的数量创建task。     Spark基础设施  :    1.sparkConf :管理Spark应用程序的各种配置信息    2.内置PRC框架 :实现spark各机器节点不同组件间通信    3.事件总线 :SparkContext内部各组件使用事件。    4.度量系统 :完成对整个Spark集群中各组件运行期状态的监控。

7. spark工作原理和介绍

https://zhuanlan.zhihu.com/p/34436165 
    https://zhuanlan.zhihu.com/p/70424613 
  
 Spark 是专为大规模数据处理而设计的快速通用的计算引擎。是Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
                                          
 1.RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。
   2.DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系。如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。
   3.Driver Program:控制程序,负责为Application构建DAG图。
   4.Cluster Manager:集群资源管理中心,负责分配计算资源。
   5.Worker Node:工作节点,负责完成具体计算。
   6.Executor:是运行在工作节点(Worker Node)上的一个进程,负责运行Task,并为应用程序存储数据。
   7.Application:用户编写的Spark应用程序,一个Application包含多个Job。
   8.Job:作业,一个Job包含多个RDD及作用于相应RDD上的各种操作。
   9.Stage:阶段,是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”。
   10.Task:任务,运行在Executor上的工作单元,是Executor中的一个线程。
                                                                                  
 1.构建Spark Application的运行环境,启动SparkContext
   2.SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend,
   3.Executor向SparkContext申请Task
   4.SparkContext将应用程序分发给Executor
   5.SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行
   6.Task在Executor上运行,运行完释放所有资源

spark工作原理和介绍

8. 如何用好spark?

Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。Spark得到了众多大数据公司的支持,这些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的Spark已应用于凤巢、大搜索、直达号、百度大数据等业务;阿里利用GraphX构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;腾讯Spark集群达到8000台的规模,是当前已知的世界上最大的Spark集群。
与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。 
Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些shell中使用Spark集群来验证解决问题的方法。 
Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的Spark集群的工具。 
最新文章
热门文章
推荐阅读