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.修改配置文件
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.修改配置文件
注意对接的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测试完毕。