素材巴巴 > 程序开发 >

Spark on YARN两种运行模式的演示

程序开发 2023-09-06 14:26:48

前言

前面搭建好了Spark on YARN环境,接下来自然要使用这个集群,发挥它的计算性能。
最常规的使用方式就是提交程序,但由于Driver有两种运行方式,导致了Spark on YARN也有两种运行模式:Cluster(集群) 和 Client(客户端) 模式。

简单来讲,Cluster模式适用于生产环境,稳定性高,通讯效率高,但日志查看不方便;Client模式的日志输出在客户端,查看方便,但其稳定性受客户端进程影响,不适于生产环境。

本篇将演示两种运行模式提交程序的过程。

一、Client

1)和往常一样,先进入spark目录/export/servers/spark-3.2.0
2)输入指令,提交程序

#以客户端模式提交程序
 bin/spark-submit --master yarn --deploy-mode client 程序#以上写法等同于 bin/spark-submit --master yarn 程序
 

3)去到4040端口查看
#任务结束前
在这里插入图片描述
#任务结束后
在这里插入图片描述
任务结束后,4040端口就没法展示了,但可以通过历史服务器来查看(18080)
在这里插入图片描述
点击红框处,结果就是又回到了刚才页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以发现,driver在这个监控界面没有日志选项,计算结果在客户端上,这侧面说明了在客户端模型下,driver确实是运行到客户端上,而不是yarn的容器内部。所以以后,对于用submit提交程序,就没必要去4040端口查看了(任务结束后都会关闭),直接去历史服务端口查看。

二、Cluster

1)输入指令,提交程序

#以集群模式启动yarn
 bin/spark-submit --master yarn --deploy-mode cluster 程序
 

2)查看yarn监控页面
3)查看历史服务页面
在这里插入图片描述
可以看出,cluster模式下运行程序确实比client模式要快
在这里插入图片描述
在这里插入图片描述

可以发现,driver有日志选项,客户端没有打印计算结果。说明cluster模式下的driver是运行在yarn的容器内部的。

那怎样才能查看计算结果呢?有3种方式:18080(历史服务页面) 和 8088(yarn的监控页面) ,以及通过指令从容器中抽离出日志(很麻烦)

我这里只介绍用页面的方法。

1、历史服务页面

我们点击driver对应的日志选项,就可以看到计算结果,
在这里插入图片描述
在这里插入图片描述

2、yarn监控页面
在这里插入图片描述
往下面一直翻,翻到底部,点击红框处
在这里插入图片描述
往下面一直翻,翻到底部
在这里插入图片描述

注意:如果两种方式你都无法打开,说明你没有启动yarn的历史服务器(JobHistoryServer),你仅仅只是启动了spark的历史服务器而已,用以下指令启动

#进入hadoop目录
 cd /export/servers/hadoop-3.3.0
 #开启服务(二选一),在node1(主节点)上执行
 sbin/mapred --daemon start historyserver
 或者
 sbin/mr-jobhistory-daemon.sh start historyserver
 

在这里插入图片描述

三、两种模式运行流程图

1、Client
在这里插入图片描述
2、Cluster
在这里插入图片描述


标签:

上一篇: AngularDart Material Design 是/否 按钮 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。