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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
日志服务 SLS,月写入数据量 50GB 1个月
云原生网关 MSE Higress,422元/月
简介: Spark学习--1、Spark入门(Spark概述、Spark部署、Local模式、Standalone模式、Yarn模式)(二)
2.3.5 配置高可用(HA)

1、高可用原理

60de1ebaf87545648ef0bd8b6ec8edc2.png

6eaf1318c7de4759be8a426b2055cde4.png2、配置高可用

(0)停止Spark集群

(1)Zookeeper正常安装并启动

(2)修改spark-env.sh文件添加如下配置

#注释掉如下内容:
#SPARK_MASTER_HOST=hadoop102
#SPARK_MASTER_PORT=7077
#添加如下内容。配置由Zookeeper管理Master,在Zookeeper节点中自动创建/spark目录,用于管理:
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER 
-Dspark.deploy.zookeeper.url=hadoop102,hadoop103,hadoop104 
-Dspark.deploy.zookeeper.dir=/spark"
#添加如下代码
#Zookeeper3.5的AdminServer默认端口是8080,和Spark的WebUI冲突
export SPARK_MASTER_WEBUI_PORT=8989

(3)分发配置文件

(4)在hadoop102上启动全部节点

(5)在hadoop103上单独启动master节点

3、高可用测试

(1)查看hadoop102的master进程

(2)Kill掉hadoop102的master进程,页面中观察http://hadoop103:8080/的状态是否切换为alive。

image.png

(3)再启动hadoop102的master进程

320b7a95299d4902b288aec6a639fbd9.png

2.3.5 运行流程

Spark有Standalone-Client和Standalone-Cluster两种模式,主要区别在于:Driver程序的运行节点。

1、客户端模式

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

–deploy-mode client,表示Driver程序运行在本地客户端,默认模式。

652a75f789d8414686664c5bdf88f946.png

2.4 Yarn模式

Spark客户端直接连接Yarn,不需要额外构建Spark集群

2.4.1 安装使用

(0)停止Standalone模式下的spark集群

(1)为了防止和Standalone模式冲突,再单独解压一份spark

(2)进入到/opt/module目录,修改spark-3.3.0-bin-hadoop3.2名称为spark-yarn

(3)修改hadoop配置文件/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml,添加如下内容(因为测试环境虚拟机内存较少,防止执行过程进行被意外杀死,做如下配置)

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
     <name>yarn.nodemanager.pmem-check-enabled</name>
     <value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
     <name>yarn.nodemanager.vmem-check-enabled</name>
     <value>false</value>
</property>

4、分发配置文件

5、修改/opt/module/spark-yarn/conf/spark-env.sh,添加YARN_CONF_DIR配置,保证后续运行任务的路径都变成集群路径

YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop 

6、启动HDFS以及YARN集群

7、执行一个程序

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10
#参数:--master yarn,表示Yarn方式运行;--deploy-mode表示客户端方式运行程序

8、查看hadoop103:8088页面,点击History,查看历史页面


5b438b8949104c8ca6844f5d8d12ac87.png

2.4.2 配置历史服务

由于是重新解压的Spark压缩文件,所以需要针对Yarn模式,再次配置一下历史服务器。

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

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历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

2.4.3 配置查看历史日志

为了能从Yarn上关联到Spark历史服务器,需要配置spark历史服务器关联路径。

目的:点击yarn(8088)上spark任务的history按钮,进入的是spark历史服务器(18080),而不再是yarn历史服务器(19888)。

1、修改配置文件/opt/module/spark-yarn/conf/spark-defaults.conf

#添加如下内容:
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080

2、重启Spark历史服务

3、提交任务到Yarn执行

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10

4、Web页面查看日志:http://hadoop103:8088/cluster

点击“history”跳转到http://hadoop102:18080/

2.4.4 运行流程

Spark有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。

yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出。

yarn-cluster:Driver程序运行在由ResourceManager启动的APPMaster,适用于生产环境。

1、客户端模式(默认)

(1)执行任务

  bin/spark-submit \
  --class org.apache.spark.examples.SparkPi \
  --master yarn \
  --deploy-mode client \
  ./examples/jars/spark-examples_2.12-3.3.0.jar \
  10

(2)任务执行结果输出在本地控制台中

b837fd8ee2444070bb5f595ac5f500f6.png

(3)yarn查看任务


a5adc7afd81b4c40ad7ccf6b5053ec64.png


4a9bb57187934492aecd4d72a643a460.png


YarnClient运行模式介绍

6079cf5e5c1a4f0dbdd3a30d94b7a529.png

2、集群模式

(1)执行任务

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10

(2)本地看不见结果输出

2481cd2ae2e74ea992bff88e13c1ac64.png

(3)看http://hadoop103:8088/cluster页面,点击History按钮,跳转到历史详情页面

867a44cda4eb462c8f12b6b8a5e30c56.png


f697f1e094824696b0f8f48cb01677c7.png

(4)查看结果输出:http//8080点击Executors->点击driver中的stdout


b02c8a05213f4be48ba44f290f1ff199.png

337af329d35d4fb68a910bc4c8814233.png

2.5 Mesos模式

Spark客户端直接连接Mesos;不需要额外构建Spark集群。国内应用比较少,更多的是运用Yarn调度。

2.6 几种模式对比

image.png

2.7 端口号总结

1、Spark查看当前Spark-shell运行任务情况端口号:4040

2、Spark Master内部通信服务端口号:7070

3、Spark Standalone模式Master Web端口号:8080

4、Spark历史服务器端口号:18080

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
1月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
49 5
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
48 3
|
1月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
58 0
|
8天前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
24 3
|
1月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
【10月更文挑战第5天】随着大数据处理需求的增长,Apache Spark 成为了广泛采用的大数据处理框架。本文详细解析了 Spark Standalone 与 YARN 两种常见部署模式的区别,并通过示例代码展示了如何在不同模式下运行 Spark 应用程序。Standalone 模式自带轻量级集群管理,适合小规模集群或独立部署;YARN 则作为外部资源管理器,能够与 Hadoop 生态系统中的其他应用共享资源,更适合大规模生产环境。文章对比了两者的资源管理、部署灵活性、扩展性和集成能力,帮助读者根据需求选择合适的部署模式。
21 1
|
26天前
|
分布式计算 算法 Spark
spark学习之 GraphX—预测社交圈子
spark学习之 GraphX—预测社交圈子
25 0
|
26天前
|
分布式计算 Scala Spark
educoder的spark算子学习
educoder的spark算子学习
13 0
|
1月前
|
资源调度 分布式计算 大数据
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
大数据-111 Flink 安装部署 YARN部署模式 FlinkYARN模式申请资源、提交任务
82 0
|
分布式计算 算法 Apache
Spark入门到精通视频学习资料--第六章:Machine Learning on Spark(1讲)
MLlib is Apache Spark's scalable machine learning library.(如下图所示)            很明显:MLlib 是一个广泛的机器学习的libray。
1389 0
|
11天前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
40 2
ClickHouse与大数据生态集成:Spark & Flink 实战

相关实验场景

更多
下一篇
无影云桌面