搭建Spark On YARN集群
文章目录
- 零、本讲学习目标
- 一、Spark On YARN架构
- (一)client提交方式
- (二)cluster提交方式
- 二、搭建Spark On YARN集群
- (一)搭建Spark Standalone集群
- 三、提交Spark应用到集群运行
- (一)启动HDFS和YARN
- (二)运行Spark应用程序
- (三)查看应用程序运行结果
零、本讲学习目标
- 学会搭建Spark On YARN模式的集群
- 能够将Spark应用程序提交到集群运行
一、Spark On YARN架构
- Spark On
YARN模式遵循YARN的官方规范,YARN只负责资源的管理和调度,运行哪种应用程序由用户自己实现,因此可能在YARN上同时运行MapReduce程序和Spark程序,YARN很好地对每一个程序实现了资源的隔离。这使得Spark与MapReduce可以运行于同一个集群中,共享集群存储资源与计算资源。Spark
On YARN模式与Standalone模式一样,也分为client和cluster两种提交方式。
(一)client提交方式
Spark On
YARN的client提交方式提交应用程序后的主要进程有:SparkSubmit、ResourceManager、NodeManager、CoarseGrainedExecutorBackend、ExecutorLauncher,运行架构如下图所示:
与Standalone模式的client提交方式类似,客户端会产生一个名为SparkSubmit的进程,Driver程序则运行于该进程中,且ResourceManager的功能类似于Standalone模式的Master;NodeManager的功能类似于Standalone模式的Worker。当Spark程序运行时,ResourceManager会在集群中选择一个NodeManager进程启动一个名为ExecutorLauncher的子进程,该子进程是Spark的自定义实现,承担YARN中的ApplicationMaster角色,类似MapReduce的MRAppMaster进程。
使用Spark On YARN的client提交方式提交Spark应用程序的执行步骤
(1)客户端向YARN的ResourceManager提交Spark应用程序。客户端本地启动Driver。
(2)ResourceManager收到请求后,选择一个NodeManager节点向其分配一个Container,并在该Container中启动ApplicationMaster(指ExecutorLauncher进程),该ApplicationMaster中不包含Driver程序,只负责启动和监控Executor(指CoarseGrainedExecutorBackend进程),并与客户端的Driver进行通信。
(3)ApplicationMaster向ResourceManager申请Container。ResourceManager收到请求后,向ApplicationMaster分配Container。
(4)ApplicationMaster请求NodeManager,NodeManager在获得的Container中启动CoarseGrainedExecutorBackend。
(5)CoarseGrainedExecutorBackend启动后,向客户端的Driver中的SparkContext注册并申请Task。
(6)CoarseGrainedExecutorBackend得到Task后,开始执行Task,并向SparkContext汇报执行状态和进度等信息。
(二)cluster提交方式
Spark On
YARN的cluster提交方式提交应用程序后的主要进程有:SparkSubmit、ResourceManager、NodeManager、CoarseGrainedExecutorBackend、ApplicationMaster,运行架构如下图所示:
与Standalone模式的cluster提交方式类似,客户端仍然会产生一个名为SparkSubmit的进程,且ResourceManager的功能类似于Standalone模式的Master;NodeManager的功能类似于Standalone模式的Worker。ResourceManager会在集群中选择一个NodeManager进程启动一个名为ApplicationMaster的子进程,该子进程即为Driver进程(Driver程序运行在其中),同时作为一个YARN中的ApplicationMaster向ResourceManager申请资源,进一步启动Executor(这里指CoarseGrainedExecutorBackend)以运行Task。
使用Spark On YARN的cluster提交方式提交Spark应用程序的执行步骤
(1)客户端向YARN的ResourceManager提交Spark应用程序。
(2)ResourceManager收到请求后,选择一个NodeManager节点向其分配一个Container,并在该Container中启动ApplicationMaster,ApplicationMaster中包含SparkContext的初始化。
(3)ApplicationMaster向ResourceManager申请Container。ResourceManager收到请求后,向ApplicationMaster分配Container。
(4)ApplicationMaster请求NodeManager,NodeManager在获得的Container中启动CoarseGrainedExecutorBackend。
(5)CoarseGrainedExecutorBackend启动后,向ApplicationMaster的Driver中的SparkContext注册并申请Task(这一点与Spark On YARN的client方式不一样)。
(6)CoarseGrainedExecutorBackend得到Task后,开始执行Task,并向SparkContext汇报执行状态和进度等信息。
二、搭建Spark On YARN集群
(一)搭建Spark Standalone集群
- Spark On
YARN模式的搭建比较简单,仅需要在YARN集群的一个节点上安装Spark即可,该节点可作为提交Spark应用程序到YARN集群的客户端。Spark本身的Master节点和Worker节点不需要启动。 - 使用此模式需要修改Spark配置文件spark-env.sh,添加Hadoop相关属性,指定Hadoop与配置文件所在目录
export JAVA_HOME=/usr/local/jdk1.8.0_162
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
- 存盘退出后,执行命令:source spark-env.sh,让配置生效
三、提交Spark应用到集群运行
(一)启动HDFS和YARN
执行命令:start-dfs.sh
执行命令:start-yarn.sh
(二)运行Spark应用程序
查看Spark应用程序$SPARK_HOME/examples/jars/spark-examples_2.11-2.1.1.jar
以Spark On YARN的cluster模式运行Spark应用程序
进入Spark安装目录,执行命令
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.11-2.1.1.jar
- 注意:tracking URL:
http://master:8088/proxy/application_1651184694326_0001/ - 程序执行过程中,可在YARN的ResourceManager对应的WebUI中查看应用程序执行的详细信息
- 浏览器中通过http://master:8088来访问YARN的WebUI
(三)查看应用程序运行结果
Spark On
YARN的cluster模式运行Spark应用不会将结果打印到控制台,可在上图WebUI中单击application_1651184694326_0001超链接,在Application详情页面的最下方单击Logs超链接,然后在新页面中单击stdout所属超链接,即可显示输出日志,而运行结果则在日志中,整个查看日志的过程如下所示。
单击Logs超链接
单击stdout : Total file length is 33 bytes.超链接,即可查看到Spark应用的运行结果
搭建Spark On YARN集群相关推荐
- Spark基础学习笔记06:搭建Spark On YARN集群
文章目录 零.本讲学习目标 一.Spark On YARN架构 (一)client提交方式 (二)cluster提交方式 二.搭建Spark On YARN集群 (一)搭建Spark Standalo ...
- Spark基础学习笔记:搭建spark on yarn 集群
一.Spark On YARN架构 Spark On YARN模式遵循YARN的官方规范,YARN只负责资源的管理和调度,运行哪种应用程序由用户自己实现,因此可能在YARN上同时运行MapReduce ...
- 搭建Spark on Yarn集群碰到的那些坑
说在前面 最近因为项目需要,处理的数据集变大了,用单机处理起来比较费劲,虽然也能得到结果,但是总觉得应该尝试一下新技术.说新技术,其实也不新了.第一次在公众号上写文章,先极简地自我介绍一下.我叫哈明, ...
- centos7 搭建Spark On Yarn集群
背景: 之前我已经搭好了hadoop3和hive3,但是了解hive3.1.2只能匹配spark2.4版本,所以我这次安装spark2.4.5. Hive3 Hadoop3 首先保证h ...
- Spark On YARN 集群安装部署
2019独角兽企业重金招聘Python工程师标准>>> 最近毕设需要用到 Spark 集群,所以就记录下了部署的过程.我们知道 Spark 官方提供了三种集群部署方案: Standa ...
- Spark on Yarn集群多Application并行执行
在工作中遇到向Spark集群提交多个任务,并且这些任务是需要同时执行的.但是遇到很多错误,所以把遇到的问题记录下来. 修改hadoop/etc/hadoop/yarn-site.xml文件 需要添加的 ...
- 阿里云学生机搭建spark、hadoop集群(踩坑之路)
服务器:三台阿里云学生机(三个账号,都在华南1c) 系统:ubuntu 一.通过外网ip登录服务器 需要修改安全组,出入方向都一样,都加入这两条.为何加这两条后续慢慢说明. 第一条安全组功能之一就是为 ...
- Flink集群搭建以及企业级yarn集群搭建
Flink下载: Apache Flink: 下载 根据自己想要下载的版本,下载指定版本我下载的是7.2hadoop版本 解压后启动: 本地启动 [root@node01 flinkhadoop1.7 ...
- spark提交到yarn_详细总结spark基于standalone、yarn集群提交作业流程
最近总结了一些关于spark core的内容,今天先来和大家分享一下spark的运行模式. spark运行模式 (1)local:在本地eclipse.IDEA中写spark代码运行程序,一般用于测试 ...
最新文章
- 【共振峰跟踪】通过平均不同分辨率的方法跟踪共振峰,基于时频lpc的频谱图的MATLAB仿真
- Django框架(12.Django中模型类高阶查询(Q对象以及F对象 和聚合函数查询))
- github使用-知乎的某小姐的一篇文章
- 关于测试一个接口的面试题
- antd下拉框联动说明
- Redis知识点笔记总结
- 【时间序列预测】基于matlab EMD优化BP神经网络汇率预测【含Matlab源码 1742期】
- 觅知网ppt模板_有哪些相见恨晚的PPT模板网站?
- oracle -3233,ORA-3233表空间相关问题处理
- MySQL项目练习2——员工信息表项目
- html水晶按钮图片,css 如何实现一个水晶按钮的效果呢?
- php+xls加密,POI Excel xlsx加密
- git reflog 恢复已删除分支
- Ubuntu18.04安装分析
- <转>svn提示出错异常为remains in conflict
- JAVA开发中常见问题
- 基于stm32的智能小车设计(一)
- 单调队列优化的DP问题
- Ruby最全系列原版书籍下载 下载 download
- html颜色对应卡,PANTONE色卡
热门文章
- ajax和axios、fetch的区别
- Long型 时间戳转换 得到格林时间 格式:2020-02-25T16:00:00.00Z
- Verilog轮询仲裁器设计——Round Robin Arbiter
- 产品需求文档写作:工友APP(PRD)
- WakeupController 走读
- 最全Python算法入门
- 服饰搭配:色彩与材质
- php搞笑证件,怎么制作搞笑证件 网络搞笑证件制作的软件怎么用的
- 机架服务器和群晖存文件对比,如何选购群晖nas网络存储服务器?
- 面试题目之:mvvm框架是什么?它与其他框架(jquery)的区别是什么?哪些场景适合?