Spark:分布式并行计算框架
内容简介
Spark是什么
Spark的发展历程
Spark能干什么
Spark的适用场景
Spark的特点
Spark生态系统
Spark运行模式
Spark高可用
Spark核心概念:RDD
Spark集群搭建
Spark与Hadoop整合
Spark应用部署模式
Spark是什么
Spark是一个基于内存计算的开源的分布式集群并行计算系统
Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,运行在JVM上,项目的core部分的代码只有63个Scala文件,非常短小精悍。
是继Hadoop之后的新一代大数据分布式处理框架
目前Spark在全球已有广泛的应用,其中包括 Alibaba 、 Baidu 、 Tencent Youku 、IBM、Intel、雅虎等。
Spark发展历程
Spark诞生于2009年,那时候它是,加州大学伯克利分校RAD实验室的一个研究项目,后来到了AMP实验室。
Spark最初是基于Hadoop Mapreduce的,后来发现Mapreduce在迭代式计算和交互式上是低效的。因此Spark进行了改进,引入了内存存储和高容错机制。
关于Spark的研究论文在学术会议上发表,并且在它被创建的2009年不久之后,对于一些特定的工作,Spark比Mapreduce快10-20倍。
2010年3月份Spark开源。
2011年,AMP实验室开始在Spark上面开发高级组件,像Shark(Hive on Spark),Spark Streaming。
2013年转移到了Apache下,现在已经是顶级项目了。
。
目前:
Spark在7年内迅速发展,较于其他大数据平台或框架,Spark代码库最为活跃
Spark发展历程
Spark能干什么
大规模数据处理。例如用户行为数据,电子商务平台用户的操作行为记录,放进Spark系统,然后对数据进行多维度的分析,发现潜在客户,个性化推荐商品
流数据处理。
图计算。社交网络
机器学习。协同过滤
Spark的适用场景
Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小
由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合
数据量不是特别大,但是要求实时统计分析需求
Spark特点
Spark是快速的
很多任务能够秒级完成,对于一些特定的工作,Spark比Mapreduce快10-20倍。
Spark扩充了流行的Mapreduce计算模型,使Spark更高效地支持更多类型的计算,包括交互式查询,和流处理。
速度快的另一个主要原因就是,能够在内存中计算。
官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。
Spark特点
Spark是易用的
Spark不仅支持Scala编写应用程序,而且支持Java和Python, Python, R等语言进行编写。
Spark特点
Spark是通用的
Spark的设计,容纳了之前很多独立的,分布式系统所拥有的功能。独立的分布式系统包括:批处理,迭代式计算,交互查询和流处理等。
并且,由之前需要维护不同的集群,到现在只需要维护一个Spark集群。
Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理,它们都是由AMP实验室提供,能够无缝的集成并提供一站式解决平台。
spark:分布式并行计算框架 来自淘豆网m.daumloan.com转载请标明出处.