您的位置:首页 > 科技 > IT业 > (四十一)大数据实战——spark的yarn模式生产环境部署

(四十一)大数据实战——spark的yarn模式生产环境部署

2024/12/22 17:30:06 来源:https://blog.csdn.net/yprufeng/article/details/140812241  浏览:    关键词:(四十一)大数据实战——spark的yarn模式生产环境部署

前言

Spark 是一个开源的分布式计算系统。它提供了高效的数据处理能力,支持复杂的数据分析和处理任务,是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark Core:实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集(Resilient Distributed DataSet,简称RDD)的API定义。Spark SQL:是Spark用来操作结构化数据的程序包。通过Spark SQL,我们可以使用 SQL或者Apache Hive版本的HQL来查询数据。Spark SQL支持多种数据源,比如Hive表、Parquet以及JSON等。Spark Streaming:是Spark提供的对实时数据进行流式计算的组件。提供了用来操作数据流的API,并且与Spark Core中的 RDD API高度对应。Spark MLlib:提供常见的机器学习功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据 导入等额外的支持功能。Spark GraphX:主要用于图形并行计算和图挖掘系统的组件。

本节内容是关于spark的yarn模式生产环境部署,Spark使用Hadoop的YARN组件进行资源与任务调度。官方下载地址:Downloads | Apache Spark

正文

①上传spark安装包到hadoop101服务器

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

②将spark安装包解压到/opt/module目录

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

 ③修改spark安装包名称为spark-on-yarn

mv spark-3.3.1-bin-hadoop3/ spark-on-yarn

④ 由于测试环境虚拟机内存较少,防止进程被意味杀死,在yarn-site.xml中配置如下内容

<?xml version="1.0"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
-->
<configuration><!-- Site specific YARN configuration properties -->
<!-- 指定 MR 走 shuffle -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property><!-- 指定 ResourceManager 的地址-->
<property><name>yarn.resourcemanager.hostname</name><value>hadoop102</value>
</property><!-- 环境变量的继承 -->
<property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property><!-- 开启日志聚集功能 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property><name>yarn.log.server.url</name><value>http://hadoop101:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property><!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是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><!-- yarn 地址配置 --><property><name>yarn.resourcemanager.address</name><value>hadoop102:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>hadoop102:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>hadoop102:8031</value></property>
</configuration>

 ⑤分发yarn的配置文件yarn-site.xml到其它服务器

⑥在spark的conf目录中根据模版拷贝一份spark的配置文件spark-env.sh

⑦ 在spark-env.sh配置文件中增加yarn的配置

YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop

⑧ 启动hadoop集群的hdfs和yarn服务

⑨在spark安装目录下提交一个spark任务,验证环境是否已经可以使用

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

 参数:--master yarn,表示Yarn方式运行

 ⑩创建spark任务日志,在spark的conf目录下拷贝一份spark的配置文件spark-defaults.conf,添加如下配置

spark.eventLog.enabled   true
spark.eventLog.dir     hdfs://hadoop101:8020/spark-logspark.yarn.historyServer.address=hadoop101:18080
spark.history.ui.port=18080

⑪在sprak的spark-env.sh配置文件中增加如下环境配置

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://hadoop101:8020/spark-log
-Dspark.history.retainedApplications=30"

⑫在hdfs中创建spark的日志目录spark-log

⑬启动spark的历史日志任务

命令:sbin/start-history-server.sh 

⑭再次执行一个spark任务,查看历史任务配置是否生效,日志已经写入HDFS

⑮通过web界面查看spark的执行日志

 

结语

至此,关于yarn环境下的spark部署搭建就完成了,我们下期见。。。。。。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com