Spark3.3集群安装部署

提示:配置参数信息(路径、名称)可根据自身环境不同,自行调整。

前言

spark从1.0版本发布至今,已经更新到3.5版本,目前生态发展非常成熟,无论是kafka、hive、还是数据湖格式(hudi、iceberg、delta)都对spark有做兼容适配,提供的API也是非常之多,由于实时场景的增加,spark计算引擎已经逐步替代mapreduce引擎,成为离线批处理的首选,而且spark提供了非常多的算数转子用于处理复杂计算,并且这些转化操作都是惰性求值,不用像mapreduce那样每一步操作需指定落在哪里,在流式处理方面,随意structed streaming的推出,spark能够将数据处理延长精确到秒级别,在个性化推荐和广告推送方面,有着很强的适用性。


提示:以下是本篇文章正文内容,下面案例可供参考

一、spark简介

apache spark是用于大规模数据处理的一种计算引擎,借鉴了mapreduce的思想发展而来,保留了分布式并行计算的优点,也改进了其明细的缺点,让中间数据保存在内存提高了运行速度,并提供了丰富的API接口提升了开发速度,关于spark的介绍,网上有非常多好的文章,这里就不具体的讲解了。

二、安装部署

1.下载安装包

登录apache spark官网地址https://spark.apache.org/downloads.html,选择3.3版本,点击spark-3.3.3-bin-hadoop3.tgz下载,下载完成后,执行以下命令解压

tar -zxvf spark-3.3.3-bin-hadoop3.tgz

在这里插入图片描述
可通过以下命令,将文件名修改为spark3,方便路径标识

mv spark-3.3.3-bin-hadoop3 spark3.3

2.配置环境变量

vim /etc/profile.d/my_env.sh打开并编辑环境变量配置文件,输入以下内容
提示:安装目录可根据自身环境不同,进行调整

export SPARK_HOME=/application/soft/spark3.3
export PATH=$PATH:$SPARK_HOME/bin

完成后保存,执行source /etc/profle使环境变量生效。

3.修改配置文件

spark有几种部署模式,分别是local、standalone、yarn模式,虽然spark本身也带有资源调度管理的能力,但spark只是作为计算引擎中的一环,在资源调度管理这块还是yarn具有更换的兼容和协调能力,所以此篇内容将围绕yarn模式部署展开。
首选需要关闭yarn虚拟内存检查,进入hadoop安装路径下etc/hadoop目录中,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>

文件保存后,进入resoucemanager节点,我这边定义的是cdp2节点,执行以下命令以重启yarn

/application/soft/hadoop-3.3.3/sbin/stop-yarn.sh
/application/soft/hadoop-3.3.3/sbin/start-yarn.sh

进入spark安装目录,修改conf/spark-env.sh,添加JAVA_HOME和YARN_CONF_DIR配置
提示:安装目录conf目录下自带的文件名称为spark-env.sh.template,可将末尾的.template去掉
vim conf/spark-env.sh打开并编辑配置文件,输入以下内容

export JAVA_HOME=/application/soft/jdk1.8.0_333
YARN_CONF_DIR=/application/soft/hadoop-3.3.3/etc/hadoop

4.功能测试

在测试前,需保证hdfs集群和yarn资源管理器已启动,可在spark安装目录下,执行以下命令
提示:以下执行的程序为spark自带的一个样例jar包,用于计算pi的值

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.12-3.3.0.jar \
10

提示:deploy-mode为client模式方便排除程序出错的原因,此处会出现File does not exist: hdfs://cdp1:8020/spark的错误,执行hdfs dfs -mkdir /spark命令,可以在hdfs目录下创建对应的spark目录
再次执行程序,在控制台中出现以下内容,则证明运行成功。
在这里插入图片描述


总结

至此,spark环境就已经部署完成,由于篇幅有限,spark一些具体功能就不继续展开了,后续会结合一些案例做详细的介绍,本篇内容旨在安装一个测试环境,为编写spark程序准备一个预处理的环境,相当于编写java程序就得首选安装jdk一样,虽然集群的环境的运维配置都是由专门的运维人员来复杂,但作为开发人员也需要一些基本的配置了解,方便后续对问题的排查定位等,好了,就先写到这里,后续会持续更新,欢迎大家一起探讨。

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于Spark on YARN的集群部署,您可以按照以下步骤进行操作: 1. 首先,确保已经安装和配置好Hadoop和YARN集群。确保YARN ResourceManager和NodeManager正在运行,并且集群配置正确。 2. 下载Spark二进制文件并解压缩到每个节点上。确保在所有节点上使用相同的Spark版本。 3. 在Spark的conf目录中,创建一个名为spark-env.sh的文件,并设置以下参数: ``` export HADOOP_CONF_DIR=<Hadoop配置目录> export YARN_CONF_DIR=<YARN配置目录> ``` 将 `<Hadoop配置目录>` 替换为Hadoop配置文件所在的目录路径,将 `<YARN配置目录>` 替换为YARN配置文件所在的目录路径。 4. 在Spark的conf目录中,打开spark-defaults.conf文件,并添加以下参数: ``` spark.master yarn spark.submit.deployMode cluster ``` 5. 根据您的需求,可以根据集群规模和资源分配需求,调整以下参数: ``` spark.executor.memory spark.executor.cores spark.executor.instances ``` 6. 您还可以根据需要设置其他Spark和YARN相关的参数,如队列设置、日志级别等。 7. 在启动Spark应用程序之前,确保您的环境变量中包含Spark和Hadoop的bin目录。您可以将这些目录添加到PATH环境变量中。 8. 使用以下命令提交Spark应用程序: ``` ./bin/spark-submit --class <main-class> --master yarn --deploy-mode cluster <application-jar> [application-arguments] ``` 将 `<main-class>` 替换为您的应用程序的主类,将 `<application-jar>` 替换为您的应用程序的JAR文件路径。 9. Spark提交应用程序后,YARN将为您的应用程序启动相应的Executor,并将资源分配给它们。您可以使用YARN的Web界面或命令行工具来监视和管理Spark应用程序。 请注意,这只是Spark on YARN集群部署的基本步骤,您可能需要根据您的特定环境和需求进行一些调整和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

以茉萱

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值