0


速速上车学Spark+Scala部署安装步骤

一、Spark是什么?

  1. spark网址: http://spark.apachecn.org/docs/cn/2.2.0/index.html
  2. Spark 是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台之一。
  3. Hadoop 之父 Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大数据项目的 MapReduce 引擎的使用将下降,由 Apache Spark 取代)。

二、了解Spark的特点

作为新一代轻量级大数据处理平台,Spark具有如下特点:

1、快速

Spark是基于内存运行的而MapReduce是基于磁盘

Spark的运行速度是Hadoop MapReduce运行速度的100多倍,Spark在磁盘上的运行速度是Hadoop MapReduce运行速度的10多倍。

2、易用

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

3、****通用

Spark框架包含多个紧密集成的组件,包括Spark SQL(即席查询)、Spark Streaming(流计算)、Spark MLlib(机器学习库)、Spark GraphX(图计算),并且支持在一个应用中同时使用这些组件。

4、****随处运行

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

5、****代码简洁

Spark使用Scala语言实现只需要一行

三、 Spark VS Hadoop

尽管 Spark 相对于 Hadoop 而言具有较大优势,但 Spark 并不能完全替代 Hadoop,Spark 主要用于替代Hadoop中的 MapReduce两个节点中的Map 计算模型。存储依然可以使用 HDFS,但是中间结果可以存放在内存中;调度可以使用 Spark 内置的,也可以使用更成熟的调度系统 YARN 等。

**1.**提高了效率

Spark把中间数据放到内存中,迭代运算效率高。MapReduce中计算结果需要落地,保存到磁盘上,这样势必会影响整体速度,而Spark支持DAG图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率

**2.**容错性高

Spark引进了弹性分布式数据集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,需要进行重建。

相比来说spark更加通用,spark提供了更多的数据集操作类型,处理节点之间通信模型不是向hadoop只采用Shuffle模式,而是采用用户可命名,控制中间结果的存储,分区。

四、Spark的生态圈

Spark有完善的生态圈,如下:

Spark Core:实现了 Spark 的基本功能,包含 RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块。

Spark SQL:Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 操作数据。

Spark Streaming:Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API。

Spark MLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。

**GraphX(图计算)**:Spark 中用于图计算的 API,性能良好,拥有丰富的功能和运算符,能在海量数据上自如地运行复杂的图算法。

集群管理器:Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。

Structured Streaming:处理结构化流,统一了离线和实时的 API

五、.spark****的运行模式

Spark有三种运行模式:local模式、standalone模式和集群模式。

1)local模式:在本地机器上运行Spark应用程序,不需要启动集群。这种模式适用于开发和调试小规模的应用程序。

2)standalone模式:在一个独立的Spark集群上运行应用程序。在这种模式下,一个节点被指定为主节点,负责协调任务的分配和调度。其他节点作为工作节点,执行任务。这种模式适用于中小规模的集群环境。

3)集群模式:在大规模的分布式集群上运行Spark应用程序。Spark可以与各种资源管理器(如YARN、Mesos)集成,通过它们来管理集群资源。在这种模式下,Spark应用程序被分解为多个任务,并在集群中的多个节点上并行执行。这种模式适用于大规模数据处理和分析任务。

六、了解Spark核心数据集****RDD

6.1RDD****定义

MapReduce 框架采用非循环式的数据流模型,把中间结果写入到 HDFS 中,带来了大量的数据复制、磁盘 IO 和序列化开销。且这些框架只能支持一些特定的计算模式(map/reduce),并没有提供一种通用的数据抽象。因此出现了RDD这个概念。

**RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark **中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合。

6.2****两种类型

转换算子:将原始数据集加载为RDD数据或将一个RDD转换为另一个RDD的操作。

行动算子:将RDD存储至硬盘中或触发转换操作执行的操作。

6.3****两种依赖

RDD

有两种依赖,分别为宽依赖(

**wide dependency/shuffle dependency**

)窄依赖****(

**narrow dependency**

)

父RDD的一个分区只被一个子RDD的一个分区所使用就是窄依赖,否则就是宽依赖

七、Scala基础

Scala是Spark编程常用的语言之一,因此,在学习Spark之前,需要先了解Scala语言、Scala安装过程和基础编程操作。

7.1了解Scala特性

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

7.2安装Scala

在Windows系统上安装Scala

  • 从Scala官网下载Scala安装包,安装包名称为“scala.msi”。
  • 双击scala.msi安装包,开始安装软件。
  • 进入欢迎界面,单击右下角的“Next”按钮后出现许可协议选择提示框,选择接受许可协议中的条款并单击右下角的“Next”按钮。
  • 选择安装路径,本文Scala的安装路径选择在非系统盘的“D:\Program Files (x86)\spark\scala\” ,单击“OK”按钮进入安装界面。
  • 在安装界面中单击右下角的“Install”按钮进行安装,安装完成时单击“Finish”按钮完成安装。
  • 右键单击“此电脑”图标,选择“属性”选项,在弹出的窗口中选择“高级系统设置”选项。在弹出的对话框中选择“高级”选项卡,并单击“环境变量”按钮,在环境变量对话框中,选择“Path”变量并单击“编辑”按钮,在Path变量中添加Scala安装目录的bin文件夹所在路径,如“D:\Program Files (x86)\spark\scala\bin”。

Scala部署安装步骤

(1)上传并解压安装scala安装包

tar -zxvf scala-2.2.12.12.tgz

tar -zxvf / export/ software/ spark-3.0.3-bin-hadoop2.7.tgz 

(2)设置环境变量

vim /etc/profile
#SPARK
export SPARK_HOME=/usr/local/soft/spark-3.0.3
export PATH=$PATH:${SPARK_HOME}/bin
export PATH=$PATH:${SPARK_HOME}/sbin

使环境变量生效

source /etc/profile

(3)修改配置文件.

cd spark/ conf/

先备份文件

cp spark env.sh.template spark env.sh

cp slaves. template slaves
vim spark-env.sh

加一些环境变量:

修改spark- env.sh文件,加以下内容:

export SCALA_HOME=/usr/local/soft/scala-2.12.12
export JAVA_HOME=/usr/local/soft/jdk1.8.0_202
export SPARK_MASTER_IP=master
export SPARK_WOKER_CORES=2
export SPARK_WOKER_MEMORY=2g
export HADOOP_CONF_DIR=/usr/local/soft/hadoop-3.1.3/etc/hadoop
#export SPARK_MASTER_WEBUI_PORT=8080
#export SPARK_MASTER_PORT=7070

修改从节点ip

vi slaves 修改内容为slave1 slave2(我的子机分别为是slave1 slave2)

(4)分发文件

scp -r /usr/local/soft/spark-3.0.3/ slave1:/usr/local/soft/
scp -r /usr/local/soft/spark-3.0.3/ slave2:/usr/local/soft/

(5)分别在slave1 slave2上设置环境变量

vim /etc/profile
#SPARK
export SPARK_HOME=/usr/local/soft/spark-3.0.3
export PATH=$PATH:${SPARK_HOME}/bin
export PATH=$PATH:${SPARK_HOME}/sbin

source /etc/profile使环境变量生效

(6)启动集群:spark目录下:./start-all.sh

查看节点:

Master:

Slave1:

Scala2:

在主节点master上出现Master 在s1上出现Worker在s2上出现Worker

Spark-shell

浏览器查看192.168.10.100:8080

标签: spark

本文转载自: https://blog.csdn.net/2301_77751917/article/details/136498560
版权归原作者 小智张 所有, 如有侵权,请联系我们删除。

“速速上车学Spark+Scala部署安装步骤”的评论:

还没有评论