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

前言

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

  • Cluster:driver运行在yarn的容器内部,和Application master在同一个容器
  • Client:driver运行在客户端进程中,如spark-submit、spark-shell等

简单来讲,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
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值