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

简介: 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

相关文章
|
SQL 分布式计算 资源调度
Dataphin功能Tips系列(48)-如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
如何根据Hive SQL/Spark SQL的任务优先级指定YARN资源队列
526 4
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
840 3
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
【10月更文挑战第5天】随着大数据处理需求的增长,Apache Spark 成为了广泛采用的大数据处理框架。本文详细解析了 Spark Standalone 与 YARN 两种常见部署模式的区别,并通过示例代码展示了如何在不同模式下运行 Spark 应用程序。Standalone 模式自带轻量级集群管理,适合小规模集群或独立部署;YARN 则作为外部资源管理器,能够与 Hadoop 生态系统中的其他应用共享资源,更适合大规模生产环境。文章对比了两者的资源管理、部署灵活性、扩展性和集成能力,帮助读者根据需求选择合适的部署模式。
457 1
|
分布式计算 Java 大数据
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
304 0
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
543 0
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
490 0
|
SQL 存储 分布式计算
大数据-93 Spark 集群 Spark SQL 概述 基本概念 SparkSQL对比 架构 抽象
大数据-93 Spark 集群 Spark SQL 概述 基本概念 SparkSQL对比 架构 抽象
382 0
|
分布式计算 Spark Shell
spark概述与编程模型
spark快的原因1.内存计算 2.DAG spark shell已经初始化好了SparkContext,直接用sc调用即可 lineage 血统 RDD wide and narrow dependencies 窄依赖每个 RDD partition最多被一个子RDD partirion依赖 /sbin(system binary)放的都是涉及系统管理的命令。有些系统里面
1316 0
|
Web App开发 分布式计算 算法
Spark入门到精通视频学习资料--第二章:Spark生态系统介绍,Spark整体概述与Spark编程模型(2讲)
概述 什么是Spark ◆ Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
1738 0

热门文章

最新文章