(四十一)大数据实战——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 at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed 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 and
  limitations 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-log

spark.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部署搭建就完成了,我们下期见。。。。。。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厉害哥哥吖

您的支持是我创作下去的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值