1.命令输入脚本启动,启动submit任务
3.创建客户端YarnClusterApplication
4.封装提交命令交给RM
5.RM在NM上启动ApplicationMaster(AM) 注意AM消耗的资源都是container的
6.AM根据参数启动Driver并且初始化SparkContext
7.Driver向RM申请资源,(YarnRM Client)
8.RM返回资源可用列表
9.Driver调用资源,找到空闲的NM,进行Executor注册,然后进行任务的切分和分配.
10.Executor 启动线程池,根据优先算法依次启动task线程.
如果是Client模式,则Driver就是本机了,Executor 会直接交互本机,远程访问提交,不能停止,同时所有Executor会交互本机,而本机资源不足,会导致系统和网络崩溃.
根据宽依赖进行Stage划分,根据分区做Task划分
因为shuffle要进行排序聚合操作,而且还要落盘
一个task的一个分区一个文件
一个核按分区数划分文件数
全部写入到一个文件中,保证文件内容有序,同时,使用稀疏索引来确定数据的位置
对比3.3直接忽略排序
要求
堆内内存: JVM管理的内存
堆外内存: 操作系统管理的内存
JVM默认站 1/ 最大 1/4 超出则内存溢出
堆:存储程序运行时构建的对象(引用)
栈: 存储方法执行的内容(压栈,栈帧), 与JAVA的栈一致
方法区: 存储类的全部信息
根据存活时长存储在不同的
新生代:
老年代
轻量级 Minor GC 对应新生代
重量级 Major GC 对应老年代
当新生代满了后,触发Minor GC,按时间排序,将旧对象放入老年代
老年代满了之后,触发Major GC,如果还不能解决问题,就出现堆内存溢出
Storange 存储 广播变量
Execution 执行 shuffle sort
Other 其他 元数据 SparkContest 框架中的类对象
Yarn是将资源分配给节点(Driver,Executor),然后每个节点中资源的调配,就是由Spark自己决定
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务