spark的功能和优缺点(spark具有哪些特点)

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

本文主要讲解“Spark有哪些性能特点”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习《火花》有哪些表演特点!

Spark:

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

Spark是加州大学伯克利分校AMP实验室(加州大学伯克利分校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 Lab(算法、机器和人实验室)开发,可用于构建大规模、低延迟的数据分析应用。

Spark的性能特点:

1.速度更快:Spark在内存计算上比Hadoop快100倍。

内存引擎,提供Cache机制支持重复迭代计算或多数据共享,降低数据读取的I/O开销。

DAG引擎,减少了在多次计算之间将中间结果写入HDFS的开销;

采用多线程池模型降低任务启动开销,避免了洗牌过程中不必要的排序操作,减少了磁盘I/O操作;

2.易用性:

Spark提供了80多名高级操作员。

提供丰富的API,支持JAVA、Scala、Python和R四种语言;

代码比MapReduce少2~5倍;

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

4.支持多个资源管理器:Spark支持Hadoop YARN、Apache Mesos以及它们自己独立的集群管理器。

Spark基本原理:

Spark Streaming:构建一个在Spark上处理流数据的框架。基本原理是将Stream数据分成小时间段(几秒钟),并以类似于批处理的方式处理这一小部分数据。火花流建立在火花之上。一方面,Spark的低延迟执行引擎(100ms)可以用于实时计算,虽然不如专用的流数据处理软件。另一方面,与其他基于Record的处理框架(如Storm)相比,可以从源数据中重新计算出一部分依赖性较窄的RDD数据集,达到容错处理的目的。此外,小批量处理的方式使其与批处理和实时数据处理的逻辑和算法兼容。对于一些需要对历史数据和实时数据进行联合分析的特定应用来说,它非常方便。

Spark背景:

1.1的限制。MapReduce :

Spark的性能特点有哪些

1.仅支持映射和缩减操作;

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

3.地图中间结果需要写入磁盘,还原到HDFS,多个MR通过HDFS交换数据;

4.任务调度和启动成本高;

5.无法充分利用内存;(与MR的产生时代有关,Mr出现时内存价格相对较高,使用磁盘存储成本较低)

6.都是6。地图侧和缩小侧需要排序;

7.MapReduce编程不够灵活。(与Scala函数式编程相比)

8.框架多样化【采用一个框架技术(Spark),同时实现批处理、流计算和交互计算。

算]:

  • 批处理:MapReduce、Hive、Pig;

  • 流式计算:Storm

  • 交互式计算:Impala

Spark核心概念:

  • RDD:Resilient Distributed Datasets,弹性分布式数据集

Spark的性能特点有哪些

  • 分布在集群中的只读对象集合(由多个Partition 构成);

  • 可以存储在磁盘或内存中(多种存储级别);

  • 通过并行“转换”操作构造;

  • 失效后自动重构;

  • RDD基本操作(operator)

Spark的性能特点有哪些

Transformation具体内容

  • map(func) :返回一个新的分布式数据集,由每个原元素经过func函数转换后组成

  • filter(func) : 返回一个新的数据集,由经过func函数后返回值为true的原元素组成

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

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

  • sample(withReplacement, frac, seed) :

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

  • union(otherDataset) : 返回一个新的数据集,由原数据集和参数联合而成

  • groupByKey([numTasks]) :

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

  • reduceByKey(func, [numTasks]) :  在一个(K,V)对的数据集上使用,返回一个(K,V)对的数据集,key相同的值,都被使用指定的reduce函数聚合到一起。和groupbykey类似,任务的个数是可以通过第二个可选参数来配置的。

  • join(otherDataset, [numTasks]) :

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

  • groupWith(otherDataset, [numTasks]) :  在类型为(K,V)和(K,W)类型的数据集上调用,返回一个数据集,组成元素为(K, Seq[V], Seq[W])  Tuples。这个操作在其它框架,称为CoGroup

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

  • flatMap(func) :

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

Actions具体内容

  • reduce(func) :  通过函数func聚集数据集中的所有元素。Func函数接受2个参数,返回一个值。这个函数必须是关联性的,确保可以被正确的并发执行

  • collect() :  在Driver的程序中,以数组的形式,返回数据集的所有元素。这通常会在使用filter或者其它操作后,返回一个足够小的数据子集再使用,直接将整个RDD集Collect返回,很可能会让Driver程序OOM

  • count() : 返回数据集的元素个数

  • take(n) :  返回一个数组,由数据集的前n个元素组成。注意,这个操作目前并非在多个节点上,并行执行,而是Driver程序所在机器,单机计算所有的元素(Gateway的内存压力会增大,需要谨慎使用)

  • first() : 返回数据集的***个元素(类似于take(1))

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

  • saveAsSequenceFile(path) :  将数据集的元素,以sequencefile的格式,保存到指定的目录下,本地系统,hdfs或者任何其它hadoop支持的文件系统。RDD的元素必须由key-value对组成,并都实现了Hadoop的Writable接口,或隐式可以转换为Writable(Spark包括了基本类型的转换,例如Int,Double,String等等)

  • foreach(func) : 在数据集的每一个元素上,运行函数func。这通常用于更新一个累加器变量,或者和外部存储系统做交互

算子分类

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

  • Value数据类型的Transformation算子,这种变换并不触发提交作业,针对处理的数据项是Value型的数据。

  • Key-Value数据类型的Transfromation算子,这种变换并不触发提交作业,针对处理的数据项是Key-Value型的数据对。

  • Action算子,这类算子会触发SparkContext提交Job作业。

Spark的性能特点有哪些

  • Spark RDD cache/persist

Spark RDD cache

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

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

Spark的性能特点有哪些

3.cache使用

Spark的性能特点有哪些

  • 之前用MapReduce实现过WordCount,现在我们用Scala实现下wordCount.是不是很简洁呢?!

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")   } }
  • 关于RDD的Transformation与Action的特点我们介绍下;

1.接口定义方式不同:

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

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

2.惰性执行:

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

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

Spark的性能特点有哪些

程序的执行流程:

Spark的性能特点有哪些

Spark运行模式:

Local(本地模式):

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

  • local:只启动一个executor

  • local[k]:启动k个executor

  • local[*]:启动跟cpu数目相同的executor

2.standalone(独立模式)

独立运行在一个集群中

Spark的性能特点有哪些

3.Yarn/mesos

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

2.Spark On Yarn存在两种模式

yarn-client

Spark的性能特点有哪些

yanr-cluster

Spark的性能特点有哪些

两种方式的区别:

Spark的性能特点有哪些

Spark在企业中的应用场景

  • 基于日志数据的快速查询系统业务;

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

  • 典型算法的Spark实现

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

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

用于ETL的SparkSQL和DAG任务。

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

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/145795.html

(0)

相关推荐

  • 如何分析Vue2cube-ui时间选择器

    技术怎么解析Vue2 cube-ui时间选择器这篇文章给大家介绍怎么解析Vue2 cube-ui时间选择器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言vue2 整合 cube-ui 时间选择器

    攻略 2021年12月20日
  • ACS与PL/SQL的工作情况分析

    技术ACS与PL/SQL的工作情况分析本篇内容主要讲解“ACS与PL/SQL的工作情况分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ACS与PL/SQL的工作情况分析”吧

    攻略 2021年11月15日
  • Windows/Linux/Mac系统下的MySQL安装,全网最全步骤)

    技术Windows/Linux/Mac系统下的MySQL安装,全网最全步骤) Windows/Linux/Mac系统下的MySQL安装(全网最全步骤)详解各系统(Windows/Linux/Mac)下的

    礼包 2021年11月4日
  • 罗马数字0,罗马数字里的0怎么写啊

    技术罗马数字0,罗马数字里的0怎么写啊罗马数字没0 一.罗马数字 罗马数字是一种现在应用较少的一种的数量表示方式。它的产生晚于中国甲骨文中的数码,更晚于埃及人的十进位数字。但是,它的产生标志着一种古代文明的进步。大约在两

    生活 2021年10月27日
  • vxworks怎么看任务使用情况(vxworks操作系统用在哪儿)

    技术vxworks中系统任务有哪些小编给大家分享一下vxworks中系统任务有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!根据配置的不同,VxWorks系统在启动时,会同步启动一些系统任务,其中有

    攻略 2021年12月22日
  • 西游记内容简介200字,西游记简介,100字左右)

    技术西游记内容简介200字,西游记简介,100字左右)书中讲述了唐僧师徒四人一路降妖伏魔西游记内容简介200字,历经整整九九八十一难取经的故事。作者细腻而深刻地塑造了四个极其经典的形象:慈悲、宽厚但软弱、迂腐的师父唐僧;

    生活 2021年10月20日