ToB企服应用市场:ToB评测及商务社交产业平台

标题: Spark on YARN:Spark集群模式之Yarn模式的原理、搭建与实践 [打印本页]

作者: 道家人    时间: 2024-11-25 05:43
标题: Spark on YARN:Spark集群模式之Yarn模式的原理、搭建与实践
Spark 的介绍与搭建:从理论到实践-CSDN博客
Spark 的Standalone集群情况安装与测试-CSDN博客
PySpark 本地开辟情况搭建与实践-CSDN博客
Spark 程序开辟与提交:本地与集群模式全剖析-CSDN博客
目录
一、Spark on YARN 的上风
(一)同一化资源管理
(二)YARN 调度机制的上风
二、Spark YARN 集群搭建步骤
(一)关闭旧的 StandAlone 集群
(二)配置第一台服务器(以 bigdata01 为例)
解压与移动 Spark 安装包
修改 spark - env.sh 配置文件
修改 spark - defaults.conf 文件
修改 log4j.properties 文件
上传 Spark JAR 包到 HDFS
修改 yarn - site.xml 文件
(三)分发配置到其他服务器
(四)启动相干服务
三、Spark on YARN 不同 deploy mode 的区别
(一)AppMaster 和 Driver 的功能概述
(二)client 模式
四、测试案例
(一)盘算 PI 值测试
(二)wordcount 案例测试
五、常见题目及解决方法
六、总结


        在大数据处理惩罚范畴,Spark 是一款非常流行的分布式盘算框架。而在 Spark 的运行模式中,YARN 模式具有独特的上风。本文将深入探讨为什么要将 Spark 程序运行在 YARN 上而不是 Spark 自带的 Standalone 集群上,详细介绍 Spark 的 YARN 集群搭建过程,以及在 YARN 模式下不同 deploy mode 的区别,并结合实际测试案例,帮助读者全面明白 Spark on YARN 这一重要的大数据技能应用。

一、Spark on YARN 的上风


(一)同一化资源管理




(二)YARN 调度机制的上风




二、Spark YARN 集群搭建步骤



(一)关闭旧的 StandAlone 集群


在开始搭建 Spark 的 YARN 集群之前,需要先关闭之前的 StandAlone 老集群。通过以下下令在指定目录下操作:

  1. cd /opt/installs/spark
  2. sbin/stop - master.sh
  3. sbin/stop - workers.sh
  4. sbin/stop - history - server.sh
复制代码
这一步骤确保在搭建新的 YARN 集群时,不会受到旧集群的干扰。


(二)配置第一台服务器(以 bigdata01 为例)


解压与移动 Spark 安装包


  1. cd /opt/modules/
  2. tar - zxf spark - 3.1.2 - bin - hadoop3.2.tgz - C /opt/installs
  3. cd /opt/installs
  4. mv spark - 3.1.2 - bin - hadoop3.2 spark - yarn
  5. rm - rf /opt/installs/spark
  6. ln - s /opt/installs/spark - yarn /opt/installs/spark
复制代码
这一系列操作完成了 Spark 安装包的解压、重定名和创建符号链接,方便后续配置和利用。

修改 spark - env.sh 配置文件


  1. cd /opt/installs/spark/conf
  2. mv spark - env.sh.template spark - env.sh
  3. vim /opt/installs/spark/conf/spark - env.sh
复制代码

在这个配置文件中,约莫 22 行左右需要设置 JAVA 安装目录、HADOOP 和 YARN 配置文件目录:

  1. export JAVA_HOME=/opt/installs/jdk
  2. export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
  3. export YARN_CONF_DIR=/opt/installs/hadoop/etc/hadoop
复制代码

同时,还需要配置历史日志服务器相干参数:

  1. export SPARK_DAEMON_MEMORY=1g
  2. export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://bigdata01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"
复制代码

修改 spark - defaults.conf 文件


  1. cd /opt/installs/spark/conf
  2. mv spark - defaults.conf.template spark - defaults.conf
  3. vim spark - defaults.conf
复制代码

添加以下内容:

  1. spark.eventLog.enabled           true
  2. spark.eventLog.dir           hdfs://bigdata01:9820/spark/eventLogs
  3. spark.eventLog.compress           true
  4. spark.yarn.historyServer.address bigdata01:18080
  5. spark.yarn.jars           hdfs://bigdata01:9820/spark/jars/*
复制代码

这些配置用于启用变乱日志纪录、指定日志存储位置和压缩方式,以及设置 YARN 历史服务器地址和 Spark 相干的 JAR 包路径。

修改 log4j.properties 文件



将log4j.properties.template重定名为log4j.properties,并修改日志级别为 WARN,减少打印的日志数量,提高体系性能。
  1. # 19行:修改日志级别为WARN
  2. log4j.rootCategory=WARN, console
复制代码


上传 Spark JAR 包到 HDFS


由于 YARN 中运行 Spark 需要用到 Spark 的一些类和方法,如果不上传到 HDFS,每次运行 YARN 都要重新上传一次,速率较慢。通过以下下令手动上传:

  1. hdfs dfs - mkdir - p /spark/jars/
  2. hdfs dfs - put /opt/installs/spark/jars/* /spark/jars/
复制代码

修改 yarn - site.xml 文件


  1. cd /opt/installs/hadoop/etc/hadoop
复制代码

查抄并配置以下内容:

  1. <property>
  2.   <name>yarn.log - aggregation - enable</name>
  3.   <value>true</value>
  4. </property>
  5. <!-- 历史日志在HDFS保存的时间,单位是秒 -->
  6. <!-- 默认的是-1,表示永久保存 -->
  7. <property>
  8.   <name>yarn.log - aggregation.retain - seconds</name>
  9.   <value>604800</value>
  10. </property>
  11. <property>
  12.   <name>yarn.log.server.url</name>
  13.   <value>http://bigdata01:19888/jobhistory/logs</value>
  14. </property>
  15. <!-- 关闭yarn内存检查 -->
  16. <property>
  17.   <name>yarn.nodemanager.pmem - check - enabled</name>
  18.   <value>false</value>
  19. </property>
  20. <property>
  21.   <name>yarn.nodemanager.vmem - check - enabled</name>
  22.   <value>false</value>
  23. </property>
复制代码

配置完成后,利用xsync.sh脚天职发yarn - site.xml文件。
大数据集群中实用的三个脚本文件剖析与应用-CSDN博客
  1. xsync.sh yarn-site.xml
复制代码


(三)分发配置到其他服务器




(四)启动相干服务


这些历史服务器对于检察作业实验历史和日志非常重要。


三、Spark on YARN 不同 deploy mode 的区别



(一)AppMaster 和 Driver 的功能概述




(二)client 模式







四、测试案例



(一)盘算 PI 值测试


通过以下下令测试官方给出的 PI 值盘算案例:

  1. /opt/installs/spark/bin/spark - submit -- master yarn /opt/installs/spark/examples/src/main/python/pi.py 10
复制代码

如果遇到资源有限的情况,可以稍作等候,观察作业实验情况。


(二)wordcount 案例测试


利用以下下令测试本身编写的 wordcount 案例:

  1. /opt/installs/spark/bin/spark - submit \
  2. -- master yarn \
  3. -- deploy - mode client \
  4. -- driver - memory 512M \
  5. -- driver - cores 1 \
  6. -- supervise \
  7. -- executor - memory 1G \
  8. -- executor - cores 1 \
  9. -- total - executor - cores 2 \
  10. /home/pyspark_core_word_args.py \
  11. /spark/wordcount/input \
  12. /spark/wordcount/output001
复制代码

同时,也可以测试 cluster 模式下是否支持,颠末测试,在 YARN 集群下,cluster 模式是支持的,而在 standalone 模式下不支持 cluster 模式。



五、常见题目及解决方法


在运行任务或者启动 YARN 时,如果遇到/bin/java没有这个文件的报错,本质原因是缺少 java。可以通过以下下令创建符号链接解决:

  1. ln - s /opt/installs/jdk/bin/java /bin/java
复制代码


六、总结


        本文详细介绍了 Spark on YARN 的相干内容,包罗其相对于 Standalone 集群的上风、YARN 集群搭建步骤、不同 deploy mode 的区别以及测试案例和常见题目解决方法。通过将 Spark 程序运行在 YARN 上,可以实现同一的资源管理和利用 YARN 更完善的调度机制,提高大数据处理惩罚的服从和灵活性。在实际应用中,读者可以根据本身的业务需求和硬件情况,公道选择 Spark 的运行模式,并通过本文介绍的方法进行搭建和配置,以充实发挥 Spark 在大数据处理惩罚中的强盛功能。同时,对于在利用过程中大概遇到的题目,也可以参考本文提供的解决方法进行处理惩罚,确保 Spark on YARN 的稳定运行。盼望本文能为广大大数据开辟者和运维职员在 Spark on YARN 的实践中提供有益的参考。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4