Spark的性能特点有哪些

发布时间:2021-12-14 17:53:46 作者:iii
来源:亿速云 阅读:152

本篇内容主要讲解“Spark的性能特点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spark的性能特点有哪些”吧!

Spark:

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。

Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop  MapReduce的通用并行框架,Spark拥有Hadoop  MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark  在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的  Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为  Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People  Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

Spark的性能特点:

1.更快的速度:内存计算下,Spark 比 Hadoop 快100倍。

2.易用性:

3.通用性:Spark 提供了大量的库,包括SQL、DataFrames、MLlib、GraphX、Spark Streaming。  开发者可以在同一个应用程序中无缝组合使用这些库。

4.支持多种资源管理器:Spark 支持 Hadoop YARN,Apache Mesos,及其自带的独立集群管理器

Spark基本原理:

Spark  Streaming:构建在Spark上处理Stream数据的框架,基本的原理是将Stream数据分成小的时间片断(几秒),以类似batch批量处理的方式来处理这小部分数据。Spark  Streaming构建在Spark上,一方面是因为Spark的低延迟执行引擎(100ms+),虽然比不上专门的流式数据处理软件,也可以用于实时计算,另一方面相比基于Record的其它处理框架(如Storm),一部分窄依赖的RDD数据集可以从源数据重新计算达到容错处理目的。此外小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法。方便了一些需要历史数据和实时数据联合分析的特定应用场合。

Spark背景:

1.MapReduce局限性:

Spark的性能特点有哪些

1.仅支持Map和Reduce两种操作;

2.处理效率低效;不适合迭代计算(如机器学习、图计算等),交互式处理(数据挖掘)和流失处理(日志分析)

3.Map中间结果需要写磁盘,Reduce写HDFS,多个MR之间通过HDFS交换数据;

4.任务调度和启动开销大;

5.无法充分利用内存;(与MR产生时代有关,MR出现时内存价格比较高,采用磁盘存储代价小)

6.Map端和Reduce端均需要排序;

7.MapReduce编程不够灵活。(比较Scala函数式编程而言)

8.框架多样化[采用一种框架技术(Spark)同时实现批处理、流式计算、交互式计算]:

Spark核心概念:

Spark的性能特点有哪些

Spark的性能特点有哪些

Transformation具体内容

*flatMap(func) :  类似于map,但是每一个输入元素,会被映射为0到多个输出元素(因此,func函数的返回值是一个Seq,而不是单一元素)

根据给定的随机种子seed,随机抽样出数量为frac的数据。

在一个由(K,V)对组成的数据集上调用,返回一个(K,Seq[V])对的数据集。注意:默认情况下,使用8个并行任务进行分组,你可以传入numTask可选参数,根据数据量设置不同数目的Task

在类型为(K,V)和(K,W)类型的数据集上调用,返回一个(K,(V,W))对,每个key中的所有元素都在一起的数据集

cartesian(otherDataset) : 笛卡尔积。但在数据集T和U上调用时,返回一个(T,U)对的数据集,所有元素交互进行笛卡尔积。

类似于map,但是每一个输入元素,会被映射为0到多个输出元素(因此,func函数的返回值是一个Seq,而不是单一元素)

Actions具体内容

saveAsTextFile(path) :  将数据集的元素,以textfile的形式,保存到本地文件系统,hdfs或者任何其它hadoop支持的文件系统。Spark将会调用每个元素的toString方法,并将它转换为文件中的一行文本

算子分类

大致可以分为三大类算子:

Spark的性能特点有哪些

Spark RDD cache

1.允许将RDD缓存到内存中或磁盘上,以便于重用

2.提供了多种缓存级别,以便于用户根据实际需求进行调整

Spark的性能特点有哪些

3.cache使用

Spark的性能特点有哪些

import org.apache.spark.{SparkConf, SparkContext}  object SparkWordCount{  def main(args: Array[String]) {  if (args.length == 0) {  System.err.println("Usage: SparkWordCount <inputfile> <outputfile>")  System.exit(1)  }   val conf = new SparkConf().setAppName("SparkWordCount")  val sc = new SparkContext(conf)   val file=sc.textFile("file:///hadoopLearning/spark-1.5.1-bin-hadoop2.4/README.md")  val counts=file.flatMap(line=>line.split(" "))  .map(word=>(word,1))  .reduceByKey(_+_)  counts.saveAsTextFile("file:///hadoopLearning/spark-1.5.1-bin-hadoop2.4/countReslut.txt")   } }

1.接口定义方式不同:

Transformation: RDD[X]&ndash;>RDD[y]

Action:RDD[x]&ndash;>Z (Z不是一个RDD,可能是一个基本类型,数组等)

2.惰性执行:

Transformation:只会记录RDD转化关系,并不会触发计算

Action:是触发程序执行(分布式)的算子。

Spark的性能特点有哪些

程序的执行流程:

Spark的性能特点有哪些

Spark运行模式:

Local(本地模式):

1.单机运行,通常用于测试;

2.standalone(独立模式)

独立运行在一个集群中

Spark的性能特点有哪些

3.Yarn/mesos

1.运行在资源管理系统上,比如Yarn或mesos

2.Spark On Yarn存在两种模式

yarn-client

Spark的性能特点有哪些

yanr-cluster

Spark的性能特点有哪些

两种方式的区别:

Spark的性能特点有哪些

Spark在企业中的应用场景

构建于Spark之上的SparkSQL ,利用其快速以及内存表等优势,承担了日志数据的即席查询工作。

预测用户的广告点击概率;

计算两个好友间的共同好友数;

用于ETL的SparkSQL和DAG任务。

到此,相信大家对“Spark的性能特点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. Spark SQL性能优化
  2. Spark运行架构的特点及优势是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spark

上一篇:SSL证书是什么

下一篇:域名SSL证书申请该如何理解

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》