Spark 环境 Yarn 模式

wuchangjian2021-11-14 22:15:10编程学习

文章目录

  • 解压缩文件
  • 修改配置文件
  • 启动 HDFS 以及 YARN 集群
  • 提交应用 (集群模式)
  • 配置历史服务器

独立部署(Standalone)模式由 Spark 自身提供计算资源,无需其他框架提供资源。这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是你也要记住,Spark 主要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是和其他专业的资源调度框架集成会更靠谱一些。所以接下来我们来学习在强大的 Yarn 环境下 Spark 是如何工作的(其实是因为在国内工作中,Yarn 使用的非常多)。

解压缩文件

将 spark-3.0.0-bin-hadoop3.2.tgz 文件上传到 linux 并解压缩,放置在指定位置。

[root@hadoop102 spark]# tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
[root@hadoop102 spark]# cd /opt/module 
[root@hadoop102 module]# mv spark-3.0.0-bin-hadoop3.2 spark-yarn

修改配置文件

1)修改 hadoop 配置文件/opt/module/hadoop/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>

2)修改 conf/spark-env.sh,添加 JAVA_HOME 和 YARN_CONF_DIR 配置

[root@hadoop102 conf]# mv spark-env.sh.template spark-env.sh
。。。
export JAVA_HOME=/opt/module/jdk1.8.0_144
YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop

启动 HDFS 以及 YARN 集群

瞅啥呢,自己启动去!

提交应用 (集群模式)

[root@hadoop102 spark-yarn]# bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

在这里插入图片描述
查看 http://hadoop103:8088 页面,点击 History,查看历史页面

在这里插入图片描述

配置历史服务器

1) 修改 spark-defaults.conf.template 文件名为 spark-defaults.conf

[root@hadoop102 conf]# 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 上的目录需要提前存在。

[root@hadoop102 hadoop]# sbin/start-dfs.sh
[root@hadoop102 hadoop]# hadoop fs -mkdir /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,参数 1 含义:WEB UI 访问的端口号为 18080
2,参数 2 含义:指定历史服务器日志存储路径
3,参数 3 含义:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

4)修改 spark-defaults.conf

spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080

5)启动历史服务

[root@hadoop102 spark-yarn]# sbin/start-history-server.sh 

6) 重新提交应用 (客户端模式)

[root@hadoop102 spark-yarn]# bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

在这里插入图片描述
7) Web 页面查看日志:http://hadoop103:8088

在这里插入图片描述
在这里插入图片描述

相关文章

湖南十年间减少二氧化碳排放约2.4亿吨,节约了9600万吨标准煤

湖南十年间减少二氧化碳排放约2.4亿吨,节约了9600万吨标准煤

2022-08-09 15:07:47 8月9日,湖南省委宣传部召开打...

java值传递机制初试2

import java.util.Scanner; class...

数据库常用的事务隔离级别都有哪些?都是什么原理?

数据库常用的事务隔离级别都有哪些?都是什么原理?

什么是事务隔离? 事务ACID特性 任何支持事务的数据库,...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。