当前位置: 首页 > news >正文

Spark两种运行模式与部署

1. Spark 的运行模式

        部署Spark集群就两种方式,单机模式与集群模式

        单机模式就是为了方便开发者调试框架的运行环境。但是生产环境中,一般都是集群部署。

        现在Spark目前支持的部署模式:

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

        (2)Standalone模式:Spark自带的任务调度模式

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

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

        如果资源是当前节点提供的就是单机模式,

        如果资源是当前多个节点提供的就是集群模式/分布式模式,

                如果资源是Yarn管理的就是Yarn部署环境(这个用的多)

                如果资源是由Spark自己管理的就是Spark部署环境

2.Spark 的安装

下载地址:

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

        2)文档查看地址:Redirecting…

        3)下载地址:https://spark.apache.org/downloads.html

https://archive.apache.org/dist/spark/

2.1 Local 模式

1) 上传本地Spark的安装包并解压

tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/

         这时候我们就把我们的环境安装好了

        这时候我们要去运行一个案例试一下,看看能不能跑起来

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

解释

--class 表示要执行的主类

--master local[2]

        1)local:没有指定线程数,则就是单线程执行

        2)local [K]:指定使用K个core来运行计算,比如local[2]就是运行两个2个Core来执行。      

        3) local[*]: 帮你按照当前最多核心数去运行。 

          以上过程可以简化为,运行业务代码,启动进程,申请资源,执行计算,终止进程,资源释放。

        我们如何看到这个运行的过程呢?

        我们可以在Spark运行的时候,另一个行命令行窗口输入jps查看正在运行的进程。

        如果我们还想看一些比较详细的信息,可以在【主机名:4040】中查看正在运行的任务,想用这个查看提交的任务,必须保证有spark正在运行。

2.2 Yarn模式        

        yarn模式就是由本地启动一个进程去提交一个任务给Yarn,然后Yarn分配给资源去运行 

   部署Yarn模式的步骤

1. 解压Spark  

 tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/

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

3. 修改hadoop配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml,添加如下内容

vim 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. 分发配置文件

xsync /opt/module/hadoop/etc/hadoop/yarn-site.xml

 5. 修改/opt/module/spark-yarn/conf/spark-env.sh,添加了YARN_CONF_DIR配置,保证就是能找到yarn位置

mv spark-env.sh.template spark-env.sh
vim spark-env.sh

YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop (需要改成自己对应的配置地址)

 6. 启动HDFS集群和YARN集群

sbin/start-dfs.sh
sbin/start-yarn.sh

7. 然后执行一下上面的那个案例

        看看与local模式有什么不同

        能看到和上图中的driver对应起来了

        ExecutorLauncher--》driver

        YarnCoarseGrainedExecutorBackend--》executor

2.3 配置历史服务配置

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

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

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

vim spark-defaults.conf

spark.eventLog.enabled          true

spark.eventLog.dir               hdfs://hadoop102:8020/directory

        然后去hadoop102:9870里创建一个新的文件directory

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

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

配置查看历史日志

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

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

        添加如下内容:

spark.yarn.historyServer.address=hadoop102:18080

spark.history.ui.port=18080

2)重启Spark历史服务

sbin/stop-history-server.sh 
sbin/start-history-server.sh 

3)提交任务到Yarn执行

bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master yarn \

./examples/jars/spark-examples_2.12-3.3.1.jar \

10

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

        然后点击页面的history就能跳转到http:hadoop102:18080/

相关文章:

  • 【ELF2学习板】Ne10进行FFT测试
  • 基于SpringBoot的新闻小程序开发与设计
  • 七牛使用任务工作流对音频进行转码
  • 项目管理基础---引言
  • 树莓派超全系列教程文档--(32)config.txt常用音频配置
  • 银行卡风险画像在社交行业网络安全的应用
  • 深入理解 React Hooks:简化状态管理与副作用处理
  • 【Test Test】灰度化和二值化处理图像
  • JAVA中多线程的经典案例
  • 2025.04.18|【Map】地图绘图技巧全解
  • 负载均衡的策略
  • Nacos 中使用了哪些缓存?缓存的目的是什么?是如何实现的?
  • 废物九重境弱者学JS第十天--BOM对象和本地存储
  • UNION和UNION ALL的主要区别
  • UMG:ListView
  • leetcode 188. Best Time to Buy and Sell Stock IV
  • 2N60-ASEMI功业控制与自动化专用2N60
  • MySQL 表varchar字段长度估算
  • 堆栈溢出 StackOverflowError 排查
  • Java反射机制深度解析与应用案例
  • 上海优化餐企发展环境:装修拓展门店最高奖50万,建立问题协调机制
  • 在现代东京,便利店如何塑造了饮食潮流、生活方式和日本社会
  • 西安一男子在闲鱼卖手机卷入电诈案,不愿前往异地接受调查被列网逃
  • 专家学者视角下的乡村教育:目标与出路并非“走出大山”
  • 从沙漠到都市:贝亲世界地球日特别行动,以桃叶冰爽力开启地球降温之旅
  • 清华成立教育学院:加快高层次人才培养、加强教育学科建设