【大数据学习 | Spark】yarn-client与yarn-cluster的区别

1. yarn的提交命令

bash 复制代码
# yarn的提交命令参数
--master yarn #执行集群
--deploy-mode # 部署模式
--class #指定运行的类
--executor-memory #指定executor的内存
--executor-cores # 指定核数
--num-executors # 直接指定executor的数量
--queue # 指定队列

2. yarn-client模式

该模式下driver端存在于client客户端。

是driver端是独立于 yarn集群的,运算的时候,driver端需要管理executor 中task的运行,所以driver端(客户端)是不能离开的。

driver端在客户端上,所以好调试日志。

当在客户端提交多个spark应用时,它会对客户端造成很大的网络压力,yarn-client模式只适合 交互式环境开发。

运行期间不能断开客户端的链接,不然driver端死掉。task任务不能顺利执行。

3. yarn-cluster模式

driver端是在APPMater节点,是在yarn集群里面 ,那运行和监控executor 的任务都是在yarn集群里面。yarn提交任务的客户端是可以离开的。

driver端在yarn集群里面,所以不好调试日志。客户端一经提交可以离开,常用于正常的提交应用,适合生产环境。

集群模式是不支持spark-shell的

bash 复制代码
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--queue hainiu \
--deploy-mode cluster \
/usr/local/spark/examples/jars/spark-examples_2.12-3.1.2.jar \
20000

4. spark on yarn 提交流程

当spark在yarn上运行时,yarn要拿到 3样:

1)运行用的配置

2)运行要依赖的jar包

默认是SPARK_HOME/jars 目录下的jar包打包

如果想加入其它jar包,可通过 --jars 添加

3)运行任务的jar包(带有代码的jar包)

这3样需要从提交程序端 上传到 /user/xxx/.sparkStaging/yarnid/目录下(分布式缓存),然后再分发到运行任务的计算节点。

相关推荐
利刃大大37 分钟前
【MyBatis】MyBatis操作动态sql && MyBatisGenerator
数据库·sql·mybatis
神算大模型APi--天枢64638 分钟前
合规与高效兼得:国产全栈架构赋能行业大模型定制,从教育到工业的轻量化落地
大数据·前端·人工智能·架构·硬件架构
一瓢西湖水2 小时前
loader命令导出大批量数据维护SQL
数据库·sql
飞飞传输3 小时前
守护医疗隐私,数据安全摆渡系统撑起内外网安全伞!
大数据·运维·安全
Guheyunyi3 小时前
视频安全监测系统的三大核心突破
大数据·运维·服务器·人工智能·安全·音视频
晴天¥3 小时前
Oracle中的安全管理(用户、权限、角色)
数据库·安全·oracle
电商API&Tina3 小时前
【电商API接口】关于电商数据采集相关行业
java·python·oracle·django·sqlite·json·php
阿里云大数据AI技术3 小时前
1TB数据,ES却收到了2TB?揪出那个客户端中的“隐形复读机”
大数据·elasticsearch
小帅学编程3 小时前
JDBC学习
数据库·学习·oracle
初恋叫萱萱4 小时前
【TextIn大模型加速器 + 火山引擎】文件智能体构建全路径指南
大数据·数据库·火山引擎