Spark On Yarn 部署原创
# 1. 介绍
本教程部署Spark基于Hadoop MapReduce非高可用计算集群(使用腾讯云对象存储COS代替HDFS,计算存储分离)。
- 部署模式:Spark On Yarn
YARN 本身是一个资源调度框架,负责对运行在内部的计算框架进行资源调度管理.。作为典型的计算框架,Spark 本身也是直接运行在 YARN 中,并接受 YARN 的调度的。所以,对于 Spark On YARN 无需部署 Spark 集群,只要找一台服务器,充当 Spark 的客户端,即可提交任务到 YARN 集群中运行。
Master 角色由 YARN 的 ResourceManager 担任。
Worker 角色由 YARN 的 NodeManager 担任。
Driver 角色运行在 YARN 容器内或提交任务的客户端进程中。
真正干活的 Executor 运行在 YARN 提供的容器内。
# 2. 软件下载
- Spark下载:
版本:spark-3.5.0-bin-hadoop3.tgz(对应hadoop3.3.1版本)
网址:https://archive.apache.org/dist/spark/spark-3.5.0/ (opens new window)
# 3. 部署环境
- 环境依赖:
Hadoop安装目录:/datadrive/hadoop-3.3.1
- 安装包目录:
Spark安装包:~/spark-3.5.0-bin-hadoop3.tgz
- 安装目录
Spark安装目录:/datadrive/spark-3.5.0-bin-hadoop3
# 4. 安装
# 4.1. Spark**解压安装
$ cd /datadrive
$ tar -zvxf ~/spark-3.5.0-bin-hadoop3.tgz
$ mv spark-3.5.0-bin-hadoop3 spark-3.5.0
1
2
3
2
3
# 4.2. 配置Spark环境变量
$ vim ~/.bash_profile
#Spark Environment
export SPARK_HOME=/datadrive/spark-3.5.0
export PATH=$SPARK_HOME/bin:$PATH
$ source ~/.bash_profile
1
2
3
4
5
6
7
2
3
4
5
6
7
# 4.3. 配置hive-env.sh
$ cd /datadrive/spark-3.5.0/conf
$ cp spark-env.sh.template spark-env.sh
$ vim spark-env.sh
## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/
YARN_CONF_DIR=/bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/
## 设备Spark JobHistory 服务的日志地址
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=cosn://qianyi-logs-1305502582/tmp/spark-logs-test -Dspark.history.fs.cleaner.enabled=true"
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 4.4. 配置日志
$ cd /datadrive/spark-3.5.0/conf
$ cp spark-defaults.conf.template spark-defaults.conf
$ vim spark-defaults.conf
#修改
# spark historyServer 地址
spark.yarn.historyServer.address hadoop-server1:18080
# 开启Spark日志记录功能
spark.eventLog.enabled true
# 设置Spark日志记录路径
spark.eventLog.dir cosn://qianyi-logs-1305502582/tmp/spark-logs-test
# 设备Spark日志开启压缩
spark.eventLog.compress true
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 4.5. 解决Spark读取COS问题
$ cd /datadrive/spark-3.5.0/jars
$ cp /datadrive/hadoop-3.3.1/share/hadoop/tools/lib/cos_api-bundle-5.6.69.jar ./
$ cp /datadrive/hadoop-3.3.1/share/hadoop/tools/lib/hadoop-cos-3.3.3.jar ./
1
2
3
2
3
# 5. 启动Spark
# 5.1. 启动historyServer
$ /datadrive/spark-3.5.0/sbin/start-history-server.sh
1
# 5.2. 访问Spark Job History UI
http://host:18080 (opens new window)
# 5.3. 启动spark-shell
$ spark-shell --master yarn --deploy-mode client
scala> sc.textFile("cosn://qianyi-backup-1305502582/weic/bigdata/spark/hehe.txt").flatMap(_.split(",")).map((_, 1)).reduceByKey(_+_).collect.foreach(println)
(hehe,2)
(haha,2)
(heihe,1)
1
2
3
4
5
6
2
3
4
5
6
# 5.4. 提交spark任务spark-submit
$ spark-submit \
--master yarn \
--deploy-mode cluster \
--class org.apache.spark.examples.SparkPi /datadrive/spark-3.5.0/examples/jars/spark-examples_2.12-3.5.0.jar 10
1
2
3
4
2
3
4
上次更新: 2024/06/28, 14:46:16
- 02
- 2025-03-28拍婚纱照 原创04-02
- 03
- 2024-04-05的晚上 原创04-01