Hadoop3.x入门-Spark3.x部署

1.前言

Spark集群模式包括:Local,Standalong,Yarn,Kubernetes,但在生产环境中Spark On Yarn是主流。其中,Spark提供计算服务,Yarn提供资源调度能力,HDFS提供存储。

本文介绍如何部署Spark3.1.3 On Yarn,这种模式下,Spark没有集群的概念,而是作为一个客户端组件向Yarn提交自定义Jar包程序任务,只需要将Spark相关配置配好并部署到hadoop集群中任意一个节点上即可。

本文的Spark对接的是Yarn HA高可用集群,Yarn的高可用部署《Hadoop3.x入门-搭建3节点Hadoop HA集群_-小末的博客-CSDN博客_hadoop3 ha搭建

2.前置条件

JDK1.8,一个Hadoop集群。

3.Spark on Yarn 提交jar包任务的简单流程

Cluster模式:

而Client模式会将driver启动在提交任务的客户端SparkSubmit进程中,由于Driver会和Executor有数据交互,Client模式下会导致用户本机网卡流量激增,导致用户本机内存增高导致OOM等问题,生产环境谨慎使用。

4.On Yarn 部署 

4.1下载Spark3.1.3 bin包

下载地址:Downloads | Apache Spark

下载完成后,上传到其中任意一台Hadoop节点服务器中,本文解压到hd1.dev.loval节点的/opt/module目录下。

4.2修改配置文件

4.2.1yarn-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>

分发配置到所有节点,并重启hdfs和yarn集群。

4.2.2spark-env.sh

cd conf/
mv spark-env.sh.template spark-env.sh
vim spark-env.sh

#设置jdk路径
export JAVA_HOME=/opt/module/jdk1.8.0_311
#配置yarn配置文件位置,spark默认读取yarn-site.xml等配置,获取yarn信息,向yarn提交任务
export YARN_CONF_DIR=opt/module/hadoop-3.3.2/etc/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

4.3配置Spark历史服务

4.3.1 创建存放日志hdfs路径

hdfs dfs -mkdir /directory 

4.3.2修改配置文件

注意对接的hadoop ha集群,非ha需要指明hdfs端口,默认是8020

mv spark-defaults.conf.template spark-defaults.conf

vim spark-defaults.conf

#加入以下内容
spark.eventLog.enabled          true
spark.eventLog.dir               hdfs://hacluster/directory
spark.yarn.historyServer.address=hd1.dev.local:18080
spark.history.ui.port=18080
vim spark-env.sh

#history ui端口,历史日志存放的路径,保存提交Application历史记录个数
#注意对接的是HDFS HA集群
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs://hacluster/directory -Dspark.history.retainedApplications=30"

4.3.3启动历史服务进程

sbin/start-history-server.sh

查看是否启动成功:

netstat -nltp|grep 18080

 如果存在则代表启动成功

4.4提交spark任务测试集群可用性

提交一个client模式的计算PI的任务:

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

查看Yarn页面:

查看Spark JobHistory页面: 

至此Spark on Yarn一个简单demo测试完毕。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值