1、比如一个yarn集群:Hadoop01 ,Hadoop02 ,Hadoop03
yarn资源管理器部署在 Hadoop01 上,spark也部署在Hadoop01服务器。如果在Hadoop01 执行 spark-submit,任务会被yarn调度到其他Hadoop02或者Hadoop03执行吗?如果被调度到其他服务器那 spark应用没有执行环境
答案:会被yarn调度到其他服务器,在调度中会将 spark的运行环境和 应用一起 调度 过去,具体看一下接口证明
1.1、在Hadoop01服务器 cd /usr/local/src/app/tmp/usercache/root/filecache 文件夹下生产了三个文件夹
一次打开三个文件夹截图
1.2、在Hadoop01服务器
1.3、结论当给yarn的spark-submit提交应用。yarn进过计算,调度到那些服务器执行,就会将spark执行环境,配置文件,和执行的 应用 都拷贝一份到要计算的环境。执行计算
2、yarn集群在调度中执行spark-submit 都会生产缓存吗?还是如果执行相同的命令会调用之前的缓存。不会生产多余的缓存
答案:
2.1、根据观察没执行一次就会生产对应的缓存,根据yarn调度到那些服务器执行运算,就在那些服务器生成相应的缓存
如下图:我在Hadoop01执行spark-submit, 在Hadoop02,Hadoop03进行计算这,只有Hadoop02和Hadoop03生成了相应缓存
达到了设置缓存的限制会删除之前的缓存数据
Hadoop02:
Hadoop03:
3、可以结合我这篇文件针对 磁盘满的情况进行处理
https://blog.youkuaiyun.com/u012228523/article/details/124196522