【大数据学习 | 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/目录下(分布式缓存),然后再分发到运行任务的计算节点。

相关推荐
2501_94369533几秒前
高职工业大数据应用专业,怎么学习工业互联网平台的操作?
大数据·学习
Elastic 中国社区官方博客几秒前
使用 Jina Embeddings v5 和 Elasticsearch 构建“与你的网站数据聊天”的 agent
大数据·人工智能·elasticsearch·搜索引擎·容器·全文检索·jina
吹晚风吧2 分钟前
实现一个mybatis插件,方便在开发中清楚的看出sql的执行及执行耗时
java·sql·mybatis
Elastic 中国社区官方博客2 分钟前
Elastic 公共 roadmap 在此
大数据·elasticsearch·ai·云原生·serverless·全文检索·aws
码云数智-大飞3 分钟前
像写 SQL 一样搜索:dbVisitor 如何用 MyBatis 范式颠覆 ElasticSearch 开发
sql·elasticsearch·mybatis
Spume--3 分钟前
AI护栏 (AI Guardrails) - 大模型防火墙
大数据·人工智能·ai编程·ai护栏
AORUO奥偌4 分钟前
以智慧科技,筑就全时段护理守护网
大数据·人工智能·科技·智能病房呼叫系统·智能医护对讲系统·智慧病房系统
jnrjian16 分钟前
Oracle 共享池 库缓存下的 Library Cache Lock
数据库·缓存·oracle
后季暖18 分钟前
flink火焰图使用
大数据·flink
上海合宙LuatOS19 分钟前
LuatOS核心库API——【json 】json 生成和解析库
java·前端·网络·单片机·嵌入式硬件·物联网·json