0


今天来认识一下无聊的spark和scala基础理知识

spark:

首先了解什么是spark。

Spark是一种快速、通用、可扩展的大数据分析引擎。

--spark的发展史

spark的主要优点

1.快速

一般情况下,对于迭代次数较多的应用程序,Spark程序在内存中的运行速度是Hadoop MapReduce运行速度的100多倍,在磁盘上的运行速度是Hadoop MapReduce运行速度的10多倍。

  1. 易用性

Spark支持使用Scala、Python、Java及R语言快速编写应用。同时Spark提供超过80个高阶算子,使得编写并行应用程序变得容易,并且可以在Scala、Python或R的交互模式下使用Spark。

3.通用性

Spark可以与SQL、Streaming及复杂的分析良好结合。Spark还有一系列的高级工具,包括Spark SQL、MLlib(机器学习库)、GraphX(图计算)和Spark Streaming(流计算),并且支持在一个应用中同时使用这些组件。

4,随处运行

用户可以使用Spark的独立集群模式运行Spark,也可以在EC2(亚马逊弹性计算云)、Hadoop YARN或者Apache Mesos上运行Spark。并且可以从HDFS、Cassandra、HBase、Hive、Tachyon和任何分布式文件系统读取数据。

5.代码简洁

Spark 支持使用Scala、Python 等语言编写代码。Scala 和 Python 的代码相对 Java 的代码而言比较简洁,因此,在 Spark 中一般都使用Scala 或 Python 编写应用程序,这也比在MapReduce 中编写应用程序简单方便。例如,MapReduce 实现单词计数可能需要60多行代码,而Spark 使用Scala 语言实现只需要一行。

Spark的生态圈

现在 Apache Spark 已经形成一个丰富的生态圈,包括官方和第三方开发的组件或工具。
Spark 生态圈也称 伯克利效据分析栈(Beikerley Data Analytics Stack, BDAS),由AMPLab打造,是致力于在算法(Algorithm)、机器(Machine)、人(People) 之间通过大规模集成展现大数据应用的平台。大家要注意,开源软件的使用要遵循对应的授权协议,Spark生态圈的大部分软件都是开源软件,但具体使用尤其是商业用途要参考其授权协议。
Spark 生态圈如图所示,以 Spark Core 为核心,可以从 HDFS、Amazon S3 和 HBase等数据源中读取数据,并支持不同的程序运行模式,能够以Mesos、YARN、EC2、本地运行模式或独立运行模式(独立运行模式即以 Spank 自带的 Standalone作为资源管理器)调度作业完成 Spark 应用程序的计算。Spark 应用程序计算的整个过程可以调用不同的组件,如 Spark Streaming 的实时流处理应用、SparkSQL的即席查询、BlinkDB 的权衡查询、MLlib/MLBase 的机器学习、GraphX的图处理和SparkR的数学计算等。

Spark生态圈中重要组件的简要介绍如下
Spark Core:Spark的核心,提供底层框架及核心支持。

BlinkDB:一个用于在海量数据上进行交互式SQL查询的大规模并行查询引擎,允许用户通过权衡数据精度缩短查询响应时间,数据的精度将被控制在允许的误差范围内。

Spark SQL:可以执行SQL查询,支持基本的SQL语法和HiveQL语法,可读取的数据源包括Hive、HDFS、关系数据库(如MySQL)等。

Spark Streaming:可以进行实时数据流式计算。

MLBase:是Spark生态圈的一部分,专注于机器学习领域,学习门槛较低。MLBase由4部分组成:MLlib、MLI、ML Optimizer和MLRuntime。

Spark GraphX:图计算的应用在很多情况下处理的数据量都是很庞大的。如果用户需要自行编写相关的图计算算法,并且在集群中应用,难度是非常大的。而使用GraphX即可解决这个问题,因为它内置了许多与图相关的算法,如在移动社交关系分析中可使用图计算相关算法进行处理和分析。

SparkR:是AMPLab发布的一个R语言开发包,使得R语言编写的程序不只可以在单机运行,也可以作为Spark的作业运行在集群上,极大地提升了R语言的数据处理能力。

Scala:
什么是Scala
Scala是Scalable Language的缩写,是一种多范式的编程语言,由洛桑联邦理工学院的马丁·奥德斯在2001年基于Funnel的工作开始设计,设计初衷是想集成面向对象编程和函数式编程的各种特性。 Scala 是一种纯粹的面向对象的语言,每个值都是对象。Scala也是一种函数式语言,因此函数可以当成值使用。 由于Scala整合了面向对象编程和函数式编程的特性,因此Scala相对Java、C#、C++等其他语言更加简洁。

Scala源代码会被编译成Java字节码,因此Scala可以运行于Java虚拟机(Java Virtual Machine,JVM)之上,并可以调用现有的Java类库。

标签: spark scala 大数据

本文转载自: https://blog.csdn.net/2301_77838071/article/details/136610104
版权归原作者 劳大别肘 所有, 如有侵权,请联系我们删除。

“今天来认识一下无聊的spark和scala基础理知识”的评论:

还没有评论