设为首页 加入收藏

TOP

spark学习笔记:一.初步了解spark
2019-03-25 13:19:01 】 浏览:52
Tags:spark 学习 笔记 初步 了解

资料来源(spark官网):http://spark.apache.org/
首先我们看下官网是怎么对spark进行定义的,下面这句话就是官网的一句话:
在这里插入图片描述
第一句:Apache Spark 闪电般快速的统一分析引擎
第二句:Apache Spark是用于大规模数据处理的统一分析引擎。

通过以上两句话,我们可以发现,spark具有速度快,功能多的特点。

下面我们看一看spark官网给出的几个特点:

第一:快速

在这里插入图片描述
它和hadoop进行了一个对比,认为比hadoop快100多倍!这一点我们应该客观看待,一般比较的时候,都是比较自己好的一面,所以列出来这么夸张的数字,我只认为他应该比hadoop的快一些。

原因分析:

原因一:
Hadoop的计算框架MapReduce是面向磁盘,它的中间结果要写入磁盘,因此速度受限于频繁的读写性能和网络I/O性能的约束,所以在处理迭代计算、实时计算、交互式数据查询时候,效率较差,原因就是MapReduce需要频繁传输和读写。

然而,在数据挖掘、图计算、以及机器学习等相关应用领域中,迭代计算、实时计算、交互式数据查询确实非常常见。但是Spark是面向内存的大数据处理引擎,spark将数据存储在内存中并基于内存进行计算。这使得Spark能够为多个不同数据源的数据提供近乎实时的处理性能,适用于需要多次操作特定数据集的应用场景。

原因二:
Spark中使用了有向无环图(Directed Acyclic Graph,DAG)这一概念。一个Spark应用由若干个作业构成,首先Spark将每个作业抽象成一个图,图中的节点是数据集,图中的边是数据集之间的转换关系;然后Spark基于相应的策略将DAG划分出若干个子图,每个子图称为一个阶段,而每个阶段对应一组任务;最后每个任务交由集群中的执行器进行计算。借助于DAG,Spark可以对应用程序的执行进行优化,能够很好地实现循环数据流和内存计算。

第二:易用

在这里插入图片描述
spark支持多种语言,Java, scala, python, R以及SQL,这确实体现了他的易用性,但是spark是scala编写的,所以scala会更好一些,其他也都ok,我用过pythonjava都还不错。

除此之外spark的易用还提现在,Spark提供了80多个针对数据处理的基本操作,如map、flatMap、reduceByKey、filter、cache、collect、textFile等,这使得用户基于Spark进行应用程序开发非常简洁高效。相对于MapReduce只要map和reduce两个操作而言,大大的提高了易用性。

第三:普遍

在这里插入图片描述
这一点也正好印证了spark是一个统一的分析引擎,具有多种功能模块。

Spark SQL是Spark用来操作结构化数据的组件。通过Spark SQL,用户可以使用SQL或者Apache Hive版本的SQL方言(HQL)来查询数据。Spark SQL支持多种数据源类型,例如Hive表、Parquet以及JSON等。

Spark Streaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的API。由于这些API与Spark Core中的基本操作相对应,因此开发者在熟知Spark核心概念与编程方法之后,编写Spark Streaming应用程序会更加得心应手。从底层设计来看,Spark Streaming支持与Spark Core同级别的容错性、吞吐量以及可伸缩性。

MLlib是Spark提供的一个机器学习算法库,其中包含了多种经典、常见的机器学习算法,主要有分类、回归、聚类、协同过滤等。MLlib不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语,包括一个通用的梯度下降优化基础算法。所有这些方法都被设计为可以在集群上轻松伸缩的架构。

GraphX是Spark面向图计算提供的框架与算法库。GraphX中提出了弹性分布式属性图的概念,并在此基础上实现了图视图与表视图的有机结合与统一;同时针对图数据处理提供了丰富的操作,例如取子图操作subgraph、顶点属性操作mapVertices、边属性操作mapEdges等。GraphX还实现了与Pregel的结合,可以直接使用一些常用图算法,如PageRank、三角形计数等。

第四:兼容

在这里插入图片描述
spark的这个兼容特点是因为它可以在任何平台上使用,可以利用hadoop的yarn,HDFS,单独自己,以及其他几种品台。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spark shell交互 下一篇Spark之   Spark Streaming..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目