spark:
首先了解什么是spark。
Spark是一种快速、通用、可扩展的大数据分析引擎。
--spark的发展史
spark的主要优点
1.快速
一般情况下,对于迭代次数较多的应用程序,Spark程序在内存中的运行速度是Hadoop MapReduce运行速度的100多倍,在磁盘上的运行速度是Hadoop MapReduce运行速度的10多倍。
2. 易用性
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++等其他语言更加简洁。文章来源:https://www.toymoban.com/news/detail-841525.html
Scala源代码会被编译成Java字节码,因此Scala可以运行于Java虚拟机(Java Virtual Machine,JVM)之上,并可以调用现有的Java类库。文章来源地址https://www.toymoban.com/news/detail-841525.html
到了这里,关于今天来认识一下无聊的spark和scala基础理知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!