Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(一)

1、Spark概述

1.1 什么是Spark

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

1.2 Hadoop和Spark历史

83b23707486045a0a2fd4e0a17ad83da.png

0edfb36cc24c4a0e92cd16e534107975.png

Hadoop的Yarn框架比Spark框架诞生的晚,所以Spark自己也设计了一套资源调度框架。

1.3 Hadoop和Spark框架对比


c954b8ee79ab4bec9f5cb396d640193c.png

1.4 Spark内置模块

c1e5c54a86b74620b0aad58a75ba22f7.png


image.png

1.5 Spark特点

1、快:与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效地DAG执行引擎,可以通过基于内存来高效处理数据流。计算的中间结果是存在于内存中的。

2、易用:Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的Shell,可以非常方便的在这些Shell中使用Spark集群来验证解决问题的办法。

3、通用:Spark提供了统一的解决方案。Spark可以用于交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark Lib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用、减少了开发和维护的人力成本和部署平台的物力成本。

4、兼容性:Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的Yarn好Apache Mesos作为它的资源管理和调度器,并且可以处理所以Hadoop支持的数据,包括HDFS、HBase等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark强大的处理能力。

2、Spark 运行模式

部署Spark集群大体上分为两种模式:单机模式与集群模式

(1)Local模式: 在本地部署单个Spark服务

(2)Standalone模式:Spark自带的任务调度模式。(国内常用)

(3)YARN模式: Spark使用Hadoop的YARN组件进行资源与任务调度。(国内最常用)

(4)Mesos模式: Spark使用Mesos平台进行资源与任务的调度。(国内很少用)

2.1 Spark安装地址

1)官网地址:http://spark.apache.org/

2)文档查看地址:https://spark.apache.org/docs/3.3.0/

3)下载地址:https://spark.apache.org/downloads.htmlhttps://archive.apache.org/dist/spark/

2.2 Local模式

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。

2.2.1 安装使用

1、上传并解压Spark安装包

2、官方求PI案例

##先进入Spark软件的家目录
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10
##  --class 表示要执行程序的主类
##  --master local[2] 
##  local:没有指定线程数,则所以计算都运行在一个线程中,没有任何并行计算
##  local[K]:指定使用K个Core来运行计算
##  local[*]:默认模式。自动帮你按照CPU最多核来设置线程数
##  spark-examples_2.12-3.3.0.jar:要运行的程序;
##  10:要运行程序的输入参数(计算圆周率π的次数,计算次数越多,准确率越高);

3、查看spark-submit所以参数

bin/spark-submit

4、结果展示


2dd0191053f14bcb8bdc5180c0c10cd0.png

2.2.2 查看任务运行详情

再次运行求PI任务,增加任务次数

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.12-3.3.0.jar \
1000

在任务运行还没有完成时,可登录hadoop102:4040查看程序运行结果

3c858e1a2f41445180e0e35b45728b16.png

2.3 Standalone模式

Standalone模式是Spark自带的资源调度引擎,构建一个由Master+Worker构成的Spark集群,Spark运行在集群中。这个standalone区别于Hadoop的,这里的Standalone是指只用Spark来搭建一个集群,不需要借助其他框架。

2.3.1 集群角色之资源管理

Master和Worker集群资源管理


cd18a1e628e445f5ab638d033422cd8a.png

Master和Worker是Spark的守护进程、集群资源管理者,即Spark在特定模式(Standalone)下正常运行必须要有的后台常驻进程。

Driver和Executor任务的管理者


aeaae32525184b3bbf8ee34f98f18340.png

Driver和Executor是临时程序,当有具体任务提交到Spark集群才会开启的程序。

Standalone是Spark自带的资源调度引擎,构建一个由Master+Worker构成的Spark集群,Spark运行在集群中。

2.3.2 安装使用

1、集群规划


hadoop102
hadoop103 hadoop104
Spark Master Worker Worker Worker

2、再解压一份Spark安装包,并修改解压后的文件夹名称为spark-standalone

3、进入Spark的配置目录/opt/module/spark-standalone/conf

4、重命名conf/workers.template文件为conf/workers,并修改works文件内容,添加work节点

vim workers
添加内容如下:
hadoop102
hadoop103
hadoop104

5、修改重命名文件conf/spark-env.sh.template为conf/spark-env.sh文件,添加master节点

SPARK_MASTER_HOST=hadoop102
SPARK_MASTER_PORT=7077

6、分发spark-standalone包

7、启动Spark集群

##进入spark-standalone的家目录
sbin/start-all.sh

8、查看三台服务器运行进程

ef03f941980d420087874e06fd5a9bf2.png

9、网页查看:hadoop102:8080(master web的端口,相当于yarn的8088端口)

目前还看不到任何任务的执行信息。

10、官方求PI案例

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10
##--master spark://hadoop102:7077指定要连接的集群的master(配置文件中所配置的信息一致)。

11、页面查看http://hadoop102:8080/

·8080:master的webUI

·4040:application的webUI的端口号

2.3.3 参数说明

我们当然也可以根据实际任务需求指定使用资源

1、配置Executor可用内存为2G,使用CPU核数为2个

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
--executor-memory 2G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10

2、页面查看http://hadoop102:8080/

eec0c7726f91467daecbc9b8d8b77f80.png

3、基本语法

bin/spark-submit \
--class <main-class>
--master <master-url> \
... # other options
<application-jar> \
[application-arguments]
##参数  解释
##--class Spark程序中包含主函数的类
##--master  Spark程序运行的模式
##--executor-memory 1G  指定每个executor可用内存为1G
##--total-executor-cores 2  指定所有executor使用的cpu核数为2个
##application-jar 打包好的应用jar,包含依赖。这个URL在集群中全局可见。 比如hdfs:// 共享存储系统,如果是file:// path,那么所有的节点的path都包含同样的jar
##application-arguments 传给main()方法的参数
2.3.4 配置历史服务

由于spark-shell停止掉后,hadoop102:4040页面就看不到历史任务的运行情况,所以我们需要历史服务器任务日志。

1、修改spark-default.conf.template名称

mv spark-defaults.conf.template spark-defaults.conf

2、修改spark-default.conf文件,配置日志存储路径(写)

spark.eventLog.enabled          true
spark.eventLog.dir              hdfs://hadoop102:8020/directory
## 注意:需要启动Hadoop集群,HDFS上的目录需要提前存在(因为历史任务日志数据存储在HDFS上)。

3、修改spark-env.sh文件,添加如下配置:

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory 
-Dspark.history.retainedApplications=30"
# 参数1含义:WEBUI访问的端口号为18080
# 参数2含义:指定历史服务器日志存储路径(读)
# 参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

4、分发配置文件

5、启动历史服务

sbin/start-history-server.sh

6、再次执行任务

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10

7、查看Spark历史服务地址:hadoop102:18080

cef64622874549ceb9bd213e5d04070d.png

相关文章
|
14天前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
61 3
|
22天前
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
1月前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之 Spark Local模式启动报错,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
3月前
|
资源调度 分布式计算 Hadoop
Hadoop Yarn 核心调优参数
这是一个关于测试集群环境的配置说明,包括3台服务器(master, slave1, slave2)运行CentOS 7.5,每台有4核CPU和4GB内存。集群使用Hadoop 3.1.3,JDK1.8。Yarn核心配置涉及调度器选择、ResourceManager线程数、节点检测、逻辑处理器使用、核心转换乘数、NodeManager内存和CPU设置,以及容器的内存和CPU限制。配置完成后,需要重启Hadoop并检查yarn配置。
|
3月前
|
SQL 分布式计算 资源调度
Hadoop Yarn 配置多队列的容量调度器
配置Hadoop多队列容量调度器,编辑`capacity-scheduler.xml`,新增`hive`队列,`default`队列占总内存40%,最大60%;`hive`队列占60%,最大80%。配置包括队列容量、用户权限和应用生存时间等,配置后使用`yarn rmadmin -refreshQueues`刷新队列,无需重启集群。多队列配置可在Yarn WEB界面查看。
|
2月前
|
资源调度 分布式计算 Hadoop
实时计算 Flink版产品使用问题之yarn session模式中启动的任务链接是http IP,想把IP映射为主机hadoop,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
102 9
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
【4月更文挑战第4天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
57 4
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop【环境搭建 02】【hadoop-3.1.3 单机版YARN】(配置、启动及验证)
Hadoop【环境搭建 02】【hadoop-3.1.3 单机版YARN】(配置、启动及验证)
44 0
|
3月前
|
资源调度 分布式计算 算法
【Hadoop Yarn】Hadoop Yarn 基于权重的调度算法
【4月更文挑战第7天】【Hadoop Yarn】Hadoop Yarn 基于优先级的调度算法

相关实验场景

更多