Spark概述及Scala搭建操作步骤

本文围绕Spark和Scala展开,介绍了Spark的定义、发展历史、特点、生态圈、作业运行流程、核心数据RDD等内容,还阐述了Scala的定义和特性。同时,详细说明了Spark和Scala的部署与安装步骤,以及Spark与MapReduce框架的对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一:Spark概述

a:定义

b:创始和服务公司

c:spark发展历史

二:spark特点

三.认识spark的生态圈

a.定义:

b.spark生态圈中重要组件的简要介绍:

四.spark作业工作运行流程

五.spark核心数据RDD

六.Scala

a.定义

b.scala特性

七:spark部署与安装:

搭建Hadoop伪分布式集群:

d.搭建完全分布式集群。

八.scala搭建

在Linux和macOS系统上安装Scala  https://www.scala-lang.org/html(1)上传并解压安装scala安装包

在Windows系统上安装Scala    https://www.scala-lang.org/html

spark对比MapReduce框架

spark内置模块

图解Scala和Java的关系


一:Spark概述

a:定义

spark是一种基于内存的快速,通用,可扩展的大数据分析计算引擎。

b:创始和服务公司

是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发的通用内存并行计算框架Spark得到了众多大数据公司的支持,这些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的Spark已应用于大搜索、直达号、百度大数据等业务;阿里利用GraphX构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;腾讯Spark集群达到8000台的规模,是当前已知的世界上最大的Spark集群。

c:spark发展历史

1、2009年,Spark诞生于伯克利大学AMPLab,属于伯克利大学的研究性项目;

2、2010 年,通过BSD 许可协议正式对外开源发布;

3、2012年,Spark第一篇论文发布,第一个正式版(Spark 0.6.0)发布;

4、2013年,成为了Aparch基金项目;发布Spark Streaming、Spark Mllib(机器学习)、Shark(Spark on Hadoop);

5、2014 年,Spark 成为 Apache 的顶级项目; 5 月底 Spark1.0.0 发布;发布 Spark Graphx(图计算)、Spark SQL代替Shark;

6、2015年,推出DataFrame(大数据分析);2015年至今,Spark在国内IT行业变得愈发火爆,大量的公司开始重点部署或者使用Spark来替代MapReduce、Hive、Storm等传统的大数据计算框架;

7、2016年,推出dataset(更强的数据分析手段);

8、2017年,structured streaming 发布;

9、2018年,Spark2.4.0发布,成为全球最大的开源项目。

而后spark的发展主要针对spark的可用性、稳定性进行改进,并持续进行润色代码。

二:spark特点

1.快速:逻辑回归算法一般需要多次迭代。分别使用Hadoop,mapreduce,spark运行逻辑回归算法。spark的运行速度是Hadoop mapreduce运行速度的100多倍,spark在内存中运行速度是Hadoop mapreduce运行速度的100多倍,spark在磁盘上的运行速度是Hadoop mapreduce运行速度的10多倍。

2.易用:Spark的版本已经更新到了Spark3.1.2(截止日期2021.06.01),支持了包括Java、Scala、Python、R和SQL语言在内的多种语言。为了兼容Spark2.x企业级应用场景,Spark仍然持续更新Spark2版本。

3.通用:在Spark的基础上,Spark还提供了包括Spark SQL、Spark Streaming、MLib及GraphX在内的多个工具库,我们可以在一个应用中无缝的使用这些工具库。

4.随处运行:用户可以使用spark的独立集群模式运行spark,也可以在亚马逊弹性计算云,Hadoop yarn 资源管理器或apache mesos上运行spark。spark作为一个分布式计算框架,本身并没有存储功能,但是spark可以从hdfs,cassandra,hbase,hive,alluxio等数据源中读取数据。

5.代码简洁:spark支持使用Scala、python等语言编写代码。Scala和python的代码相对Java的代码而言相对简洁。

三.认识spark的生态圈

a.定义:

现在Apache Spark已经形成一个丰富的生态圈,包括官方和第三方开发的组件或工具。Spark生态圈也称为伯克利数据分析栈,由AMPLab打造,是致力于在算法,机器,人之间通过大规模集成展现大数据应用的平台。

b.spark生态圈中重要组件的简要介绍:

1.Spark Core:spark的核心,提供底层框架及核心支持。

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

3.spark SQL:应用于数据查询,数据存储.Spark SQL可以对接Hive,实现Spark查询Hive仓库数据的功能,底层走的是Spark core.

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

5.MLbase:MLbase是Spark生态圈的一部分,专注于机器学习领域,学习门槛较低。

6.GraphX:图计算的应用在很多情况下处理的数据量都是很庞大的。

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

四.spark作业工作运行流程

三种运行模式:Standalone、YARN、Mesos.,在Mesos模式和 YARN模式下,Spark作业的运行流程类似

Standalone模式是spark自带的资源管理器。在Standalone模式下,Driver既可以运行在主节点上,也可以运行在本地客户端上。

YARN:在YARN模式下有两种运行方式:Driver运行在集群NodeManager和Driver运行在客户端。

五.spark核心数据RDD

弹性分布式数据集是spark中非常重要的概念,可以简单地理解成一个提供了许多操作接口的数据集合。RDD是spark core的底层核心

RDD支持两种数据的操作,分别为转换操作和行动操作,也称为转换算子和行动算子。

转换操作主要是指将原始数据集加载为RDD数据或将一个RDD转换为另一个RDD的操作。

行动操作主要指将RDD存储至硬盘中或触发转换操作一个新的RDD作为结果。

窄依赖是指子RDD的一个分区只依赖于某个父RDD中的一个分区。

宽依赖是指子RDD的每一个分区都依赖于某个父RDD中的一个以上的分区。

六.Scala

a.定义

Scala是Scalable Language的缩写,是一种多范式的编程语言,由洛桑联邦理工学院的马丁·奥德斯在2001年基于Funnel的工作开始设计,设计初衷是想集成面向对象编程和函数式编程的各种特性。

Scala 是一种纯粹的面向对象的语言,每个值都是对象。

Scala也是一种函数式语言,因此函数可以当成值使用。

由于Scala整合了面向对象编程和函数式编程的特性,因此Scala相对于JavaC#C++等其他语言更加简洁。

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

b.scala特性

面向对象、函数式编程、静态类型 、可扩展。

七:spark部署与安装:

spark搭建需要在Hadoop集群上面搭建,如果搭建单机版集群需要在Hadoop伪分布式环境的基础上进行搭建,判断spark是否搭建好需要查看进程是否有Master进程和Work进程。如果要搭建完全分布式集群则需要在Hadoop完全分布式集群的基础下进行搭建。本文将进行完全分布式集群的部署与安装。

搭建Hadoop伪分布式集群:

卸载电脑自带jdk
查看 rpm -qa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值