首页 > 其他分享 >【Spark集群部署系列四】Spark on YARN介绍和环境部署

【Spark集群部署系列四】Spark on YARN介绍和环境部署

时间:2024-08-14 16:27:53浏览次数:8  
标签:部署 YARN export 集群 Spark 安装 spark

简介

引言:

通常如果我们想要一个稳定的生产Spark环境, 那么最优的选择就是构建:HA StandAlone集

群.。不过在企业中, 服务器的资源总是紧张的, 许多企业不管做什么业务,都基本上会有Hadoop集群. 也就是会有YARN集群。 对于企业来说,在已有YARN集群的前提下在单独准备Spark StandAlone集群,对 资源的利用就不高 . 所以, 在企业中,多 数场景下,会将 Spark 运行到 YARN 集群中。 YARN本身是一个资源调度框架, 负责对运行在内部的计算框架进行资源调度管理。 作为典型的计算框架, Spark本身也是可以直接运行在YARN中, 并接受YARN的调度的。

 Spark On Yarn的本质:

 简而言之:就是让YARN替代Spark的Master和Worker的资源管理工作,只负责运行就行

Master角色由YARN的ResourceManager担任.

Worker角色由YARN的NodeManager担任. Driver角色运行在 YARN 容器 内 或 提交任务的 客户端进程 中 真正干活的 Executor 运行在 YARN 提供的容器

 

Spark On Yarn部署需要 :

所以, 对于Spark On YARN, 无需部署Spark集群, 实际上,通常的做法是在集群中的一个或几个节点上安装Spark,然后通过YARN调度器来分配和管理Spark应用程序的执行。

1.需要HDFS,YARN集群已经安装了:

HDFS集群部署参考【hadoop集群部署一】icon-default.png?t=N7T8http://t.csdnimg.cn/TXasCYARN集群部署参考【hadoop集群部署二】YARN,MapReduceicon-default.png?t=N7T8http://t.csdnimg.cn/5Jf78

2.需要Spark客户端工具, 比如spark-submit, 可以将Spark程序提交到YARN中 3.需要被提交的代码程序:,如spark/examples/src/main/python/pi.py此示例程序,或我们后续自己开发的Spark任务

 安装spark:

-单点安装: 可以在集群中的一个节点上安装Spark。这个节点可以是YARN集群中的任何一台机器,通常是NameNode或其他具有较高资源的节点。


-多点安装: 在某些情况下,可能会选择在多个节点上安装Spark,以减少网络传输延迟。但这并不是必须的,通常单个节点上的安装就足够了。

本教程以单点安装举例,部署机器node1。多点安装基本就是复制单点安装的Spark安装部署。

是否需要安装Python环境?

pache Spark on YARN(Yet Another Resource Negotiator)模式并不直接依赖于Python环境。Spark on YARN主要是指Spark集群如何管理和分配资源的方式,它通过YARN(这是Hadoop的一个组件)来调度资源。这种模式下,Spark可以使用Java、Scala或Python等语言编写的应用程序。

但是,如果你的Spark作业是用Python编写的(例如使用PySpark),那么需要确保集群中的每个节点都安装了相应的Python环境,并且有正确的版本以及所需的库。

总结一下:

- 对于Spark本身:不需要Python环境。Spark可以使用Java或Scala编译并部署到YARN上,这与Python环境无关。


- 对于Python编写的Spark作业:
  - 如果你的Spark作业使用Python(PySpark),则每个执行作业的节点都需要安装Python及其相关库

 需要安装python的参考:

该教程为StandAlone模式,内含Anaconda安装,往下翻,找到Anaconda的安装部署icon-default.png?t=N7T8http://t.csdnimg.cn/5hvKM

Spark安装部署【单点安装】(node1,根据情况选择,多点安装请套用单点安装):

 提示:如果之前部署过Spark Local(你想要部署的机器上部署过Spark),或者StandALone,又或是StandALone HA,Spark安装可以不用管。直接跳到Spark On Yarn 部署的环节然后往下走就行。

上传解压spark

(我的是 spark-3.2.0-bin-hadoop3.2.tgz)

 通过什么工具不管,能上传就行。

找到spark上传的位置,cd 进到该目录,不进去也行,自己在前面加路径哈!解压。

  tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server spark-3.2.0-bin-hadoop3.2/
-C 参数后跟解压到哪(路径)
cd /export/server    #填你自己解压的路径

  建立软链接

 ln -s spark-3.2.0-bin-hadoop3.2/ spark
ll
配置环境变量
vim /etc/profile
export SPARK_HOME=/export/server/spark

# 如果不用pyspark可以不用管,pyspark运行的python虚拟环境路径
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
  
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

 

:wq
source /etc/profile
vim /root/.bashrc

添加 

export JAVA_HOME=/export/server/jdk

# 不用pyspark的不用管,和/etc/profile文件一样。
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8   
:wq

Spark On Yarn 部署

修改配置文件:

cd /export/server/spark/conf     # 注意路径
vim spark-env.sh
## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop

:wq
cd ..

tip : 多点安装,想要安装的机器都要完成上述操作,可以分发 (一般来说单台机器就够了)

tip:请保证HDFS,YARN,以及相关的历史服务器已经启动

start-dfs.sh
start-yarn.sh
$HADOOP_HOME/bin/mapred --daemon start historyserver
sbin/start-history-server.sh 

 运行

启功pyspark客户端(需要python环境)

bin/pyspark --master yarn

 

启动scala交互式客户端

bin/spark-shell --master yarn

 提交python程序,需要python环境(spark-submit)

 bin/spark-submit --master yarn /export/server/spark/examples/src/main/python/pi.py 10

 

Web UI 

node1:8088

 Spark on Yarn部署模式(稍后补充):

 Spark on Yarn部署模式icon-default.png?t=N7T8http://稍后补充

标签:部署,YARN,export,集群,Spark,安装,spark
From: https://blog.csdn.net/qq_65231448/article/details/141184332

相关文章

  • 想要数字人直播平台赚钱,前期源码部署要注意哪些要点?
    随着人工智能时代的到来,数字人直播的应用频率不断升高,展现巨大收益潜力的同时,也让不少想要通过数字人源码厂商搭建数字人直播平台的创业者产生好奇,并开始从各方面打听数字人直播平台怎么赚钱等相关问题的答案。本期,我们将以数字人源码厂商灰豚所搭建的数字人直播平台为例,对市......
  • 拆除kubeadm部署的Kubernetes 集群
    kubeadm拆除Kubernetes集群工作节点在拆除集群之前,先从集群中删除所有的工作节点,而后拆除各控制平面节点。若仅拆除单个已然处于正常工作状态的节点:先禁止该节点作为调度目标:kubectlcordonNODE然后排空该节点:kubectldrainNODE待排空操作完成后,从控制平面上删除该节点......
  • windows下安装部署
    1.安装1.1官网下载Foundationstar下载解压缩1.2官网下载Agentstar下载解压缩2.修改配置2.1agents把解压的agents放到Foundations,改下文件夹名2.2端口修改webapp->application.yml2.3数据保存修改config->application.ymlmysql存储mysql账号密码修......
  • 附038.Kubernetes_v1.30.3高可用部署架构二
    部署组件该Kubernetes部署过程中,对于部署环节,涉及多个组件,主要有kubeadm、kubelet、kubectl。kubeadm介绍Kubeadm为构建Kubernetes提供了便捷、高效的“最佳实践”,该工具提供了初始化完整Kubernetes过程所需的组件,其主要命令及功能有:kubeadminit:用于搭建Kuberne......
  • JSP花店业务管理系统的设计与实现4vcg5--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,商家,场合分类,花卉信息,商家回复,用户咨询开题报告内容一、项目背景与意义随着人们对生活品质追求的提升,花卉消费日益增长,传统花店管理模式已难......
  • JSP河南口腔医疗诊所线上服务系统a11h1--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,医生,科室,医生信息,挂号信息,药品信息,取消挂号开题报告内容一、课题名称河南口腔医疗诊所线上服务系统设计与实现二、研究背景与意义随着互......
  • JSP惠民农产品网站s4695--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着互联网的飞速发展,电子商务已成为推动农产品流通的重要力量。传统农产品销售模式存在信息不对称、流通环节多、成本高企等......
  • dapr部署到kubernetes
    apiVersion:apps/v1kind:Deploymentmetadata:name:dev-backendnamespace:dapr-demo03labels:app:app-backendservice:service-backendspec:replicas:3selector:matchLabels:app:dev-backendtemplate:metadata:......
  • JSP怀旧影院订票系统的设计与实现74820--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景与意义随着科技的飞速发展,人们观影方式日益多样化,但对于热爱经典电影的观众而言,怀旧影院仍具有不可替代的魅力。然而,传统影院在订票......
  • LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开
    LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发1.Ollama部署的本地模型(......