spark RDD iterator中sparkEnv功能 -- (视频笔记)

sparkEnv是spark环境变量

1、可以从其中get 缓存

2、为master workder driver 管理和保存运行时对象。

3、excutorid ,excutor 一种为driver类型,一种具体处理task 内部有线程池的excutor

4、actorSystem ,如果运行在driver 则为spark driver,如果在excutor上在则为spark excutor

5、serializer 序列化器

6、cacheManager

7、mapOutputTracker,它负责保存shuffle map output输出位置信息。

在一个stage中产出的数据通过shuffle write写入到localFileSystem中,具体存储在什么位置,就是由mapOutputTracker跟踪记录的。

master slave 模式,driver 上 则为 mapOutputTrackerMaster,work上则为mapOutputTrackerWorker,worker汇总master获取信息。

8、shuffleManager

hash

sort

可插拔,支持扩展

9、broadcastManager 广播,

例如

join的时候,小的表就可以广播到大的表所在的机器上。

也可以把全局信息广播出去。

spark将任务广播到具体的excutor;hadoop的MR,每次将配置信息登,每个任务都要重新加载。

10、BlockTransferService

读取shuffle数据,有数据大小区别,不同的数据量使用不同的传输方式。Netty方式还是NIO的方式。

11、BlockManager

管理内存和磁盘等。。。管理storage模块本身。

12、securityManager 安全模块

13、HttpFileServer

提供http服务的server,用于excutor下载相关执行jar包的依赖。

14、metricsSystem

用于收集统计信息。

包括excutor的状态,以及任务的状态。

用于做监控工具很管用

15、shuffleMemoryManager

本身是用于管理shuffle执行过程中内存的。

申请和分配shuffle使用的内存,

假设N个线程,每个线程会申请到 1/(2N),最多可以申请到1/N的内存

N是动态变化,线程的数量会变化。

16、 sparkEnv是随着sparkContext创建的。

 

posted @ 2015-12-29 17:35  逸新  阅读(1059)  评论(0编辑  收藏  举报